2

我有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,

请注意,CSVs 是原始文件,我无法更改它们。我还在数据集中尝试了不同的QuoteEscape字符,但没有成功。我也想使用 ADF 来做到这一点,而不是天蓝色的功能。

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

更新:有趣的是数据集预览有效: 在此处输入图像描述

4

3 回答 3

1

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

  1. Azure 数据工厂会将最后一个逗号解释为具有空值的列。所以我们可以使用 Select 活动来过滤最后一列。 在此处输入图像描述

  2. 在sink手动设置映射。 在此处输入图像描述

  3. 然后我们可以下沉到我们的 DW 或 SQL 表。 在此处输入图像描述

于 2021-03-30T08:51:49.743 回答
1

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

于 2021-03-30T09:20:36.423 回答
1

有一个简单的解决方案。

第1步:

取消选中源数据集中的“第一行作为标题”选项 在此处输入图像描述

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

单击此处查看映射设置的图像

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

于 2021-04-01T20:35:30.280 回答