我有CSV
文件,我想从一个blob复制到DW,CSV
文件的最后一列后有逗号(见下面的例子)。使用ADF,我尝试将csv文件复制到DW中的SQL表。然而,我得到了这个错误,我认为这是因为最后一个逗号(因为我有15列):
csv文件的几行:
Code,Last Trading Date,Bid Price,Bid Size,Ask Price,Ask Size,Last Price,Traded Volume,Open Price,High Price,Low Price,Settlement Price,Settlement Date,Implied Volatility,Last Trade Time,
BNH2021F,31/03/2021,37.750000,1,38.000000,1,,0,,,,37.750000,29/03/2021,,,
BNM2021F,30/06/2021,44.500000,6,44.700000,2,44.400000,4,44.300000,44.400000,44.300000,44.500000,29/03/2021,,15-55-47.000,
BNU2021F,30/09/2021,46.250000,2,47.000000,1,47.490000,2,47.490000,47.490000,47.490000,46.920000,29/03/2021,,15-59-10.000,
请注意,CSV
s是原始文件,我不能更改它们。我还在数据集中尝试了不同的 Quote 和 Escape 字符,但没有成功。我还想使用ADF来实现这一点,而不是Azure函数。
我找不到任何解决办法,请帮助。
更新:数据集预览的效果很有意思:
4条答案
按热度按时间wbrvyc0a1#
我认为你可以使用数据流来实现这一点。
1.在sink手动设置Map。
1.然后,我们可以将数据集中到DW或SQL表。
wz8daaqr2#
您正在使用15列,而您的目标需要16列。向CSV添加另一列或修改DW。
2exbekwf3#
有一个简单的解决办法。
第一步:
取消选中源数据集
中的“First Row as header”选项
**第二步:**先将其下沉到另一个CSV文件中。在接收器csv数据集导入模式中,如下所示。复制活动将创建一个新的CSV文件,其中包含所有15个干净的列,即最后额外逗号将不会出现在新csv文件.
**第三步:**从新建csv文件中复制,勾选“First row as header”,并将其发送到DW。
az31mfrm4#
我遇到了同样的问题,csv文件的最后一列为空col1,col2,col3
“a”,“B”
“c”“d”
管道是动态的,所以我不能手动Map。
在我的例子中,我通过将数据集中的NULL值替换为“”来解决这个问题。