首页 > 解决方案 > 数据工厂无法将最后一列后带逗号的“csv”复制到 sql 数据仓库

问题描述

我有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 来做到这一点,而不是天蓝色的功能。

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

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

标签: azurecsvazure-data-factory-2azure-data-factory-pipelinecopy-activity

解决方案


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

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

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

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


推荐阅读