csv 在adf中导入分隔文件时处理额外的列

y3bcpkx1  于 2022-12-15  发布在  其他
关注(0)|答案(1)|浏览(115)

我有一个带有分隔符'的csv文件|'。对于字符串本身包含的某些行'|'。最后,这些行将获得一个附加列。因此,当使用复制活动复制数据时,ADF将引发错误。如何跳过这些特定行的复制活动?
我试过在文件本身中删除这些行,但这里的主要问题是,我每天都会得到要加载到数据库中的文件。

q0qdq0h2

q0qdq0h21#

这个问题经常出现,通常是用逗号,而且没有任何好的答案。下面是我的建议,按优先顺序排列。
如果您可以控制输入文件格式,我建议您同时执行以下两项操作:
1.更改文件分隔符。更改文件以使用数据中不会出现的分隔符。同样,此问题最常发生在逗号(,)分隔符中,因为逗号经常出现在基础数据中。Pipestem(|)通常是一个不错的选择,因为它并不自然地出现在文本中。既然这里不是这样,你可能需要更有创造性地使用像插入符号(^)这样的东西。制表符(\t)也是一个可靠的选择,可能是最容易实现的更改。
1.用引号将字段括起来。这样做将允许引号内的文本包含分隔符字符。无论分隔符是什么,这都是一个很好的做法,但根据行数和列数,可能会显著增加文件大小。您还可以选择仅对文本中包含分隔符的字段使用引号。
如果不能修改输入文件,则需要一个预处理器步骤来删除有问题的行。基本上,我会将原始文件的每一行读取为单个文本值(不解析)并计算分隔符。如果行具有正确的分隔符计数,然后把它写到一个辅助文件中。然后你可以使用这个辅助文件进行你的下游处理。由于数据丢失,这将是我最后的选择,但在您的情况下可能是可以容忍的。您可以使用具有无架构源数据集的数据流来完成此步骤。

相关问题