我在Blob存储中有一些用管道分隔的平面文件,在每个文件中,我都有一个页眉和页脚记录,包括文件名,提取日期和记录数。我正在将ADF管道与Polybase一起使用以加载到Azure DWH中。我可以跳过页眉记录,但无法跳过页脚记录。我能想到的唯一方法是使用所有varchar创建登台表并将其加载到登台,然后将数据类型转换回主表。但这不起作用,因为列数与页脚和数据不同。有没有更简单的方法可以做到这一点?请指教。
Polybase没有用于删除页脚行的显式选项,但确实有一组拒绝选项,您可以利用这些选项。如果将REJECT_TYPE
设置为VALUE
(而不是PERCENTAGE
),并且将REJECT_VALUE
AS 1
设置为告诉Polybase仅拒绝一行。如果您的页脚与主要数据行的格式不同,它将被拒绝,但您的查询不会失败。
CREATE EXTERNAL TABLE yourTable
...
<reject_options> ::=
{
| REJECT_TYPE = value,
| REJECT_VALUE = 2
如果需要进一步的帮助,请发布带有标题,列和页脚的文件的简单,匿名化示例。
更新:检查此博客,以获取有关跟踪被拒绝的行的信息: