微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

数据工厂无法将最后一列后带逗号的“csv”复制到 sql 数据仓库

如何解决数据工厂无法将最后一列后带逗号的“csv”复制到 sql 数据仓库

我有 CSV 文件要从 blob 复制到 DW,CSV 文件在最后一列后有逗号(请参见下面的示例)。使用 ADF,我尝试将 csv 文件复制到 DW 中的 sql 表。但是,我收到了这个错误,我认为这是因为最后一个逗号(因为我有 15 列):

enter image description here

几行 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,29/03/2021,BNM2021F,30/06/2021,44.500000,6,44.700000,2,44.400000,4,44.300000,15-55-47.000,BNU2021F,30/09/2021,46.250000,47.000000,47.490000,46.920000,15-59-10.000,

请注意,CSV 是原始文件,我无法更改它们。我还在数据集中尝试了不同的 QuoteEscape 字符,但没有奏效。 我也想使用 ADF 来做到这一点,而不是 azure 函数

我找不到任何解决方案,请帮助。

更新: 有趣的是数据集预览有效:

enter image description here

解决方法

我认为您可以使用数据流来实现这一点。

  1. Azure 数据工厂会将最后一个逗号解释为具有空值的列。所以我们可以使用 Select 活动来过滤最后一列。 enter image description here

  2. 接收器手动设置映射。 enter image description here

  3. 然后我们可以下沉到我们的 DW 或 SQL 表。 enter image description here

,

您使用了 15 列,而您的目的地需要 16 列。将另一列添加到您的 CSV 或修改您的 DW。

,

对此有一个简单的解决方案。

第 1 步:

取消选中源数据集中的“第一行作为标题”选项 enter image description here

第 2 步:首先将其放入另一个 CSV 文件。在接收器 csv 数据集导入模式中,如下所示。复制活动将创建一个新的 CSV 文件,其中包含所有干净的 15 列,即新的 csv 文件中不会出现最后一个额外的逗号。

Click here to see image of mapping setting

第 3 步:从新创建的 csv 文件中复制并选中“第一行作为标题”并将其发送给 DW。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?