在Data Factory中映射数据流不会忽略CSV文件的文本值中的换行符

时间:2019-07-31 14:56:30

标签: azure csv azure-data-factory azure-data-factory-2

我在Azure数据工厂中存在以下问题:

在ADLS中,我有一个CSV文件,其值带有换行符:

A, B, C
a, b, c
a, "b
b", c

此CSV使用以下设置加载到(CSV)数据集(在ADF中)中;第一行是标题,引号,双引号(“),列定界符逗号(,),行定界符(\ r,\ n或\ r \ n)和转义字符反斜杠()。

数据集的“预览数据”似乎可以正常工作,并输出包含2行的表。这也是我期望的输出,因为保留了数据的总体结构。 enter image description here

但是,当我尝试在“映射数据流”中使用此数据集并选择“数据预览”(直接在源节点中)时,得到以下输出: enter image description here

即使整个值在双引号之间,也不会忽略换行符。现在,数据的总体结构被破坏了,因为一行被分成两行。

当我在某些单元格中将带有换行符的Excel文件保存为CSV时,会得到这种数据。我应该如何解决这个问题?我应该以其他方式保存Excel,还是应该在保存为CSV之前尝试删除所有换行符,还是可以让Data Factory解决此问题? Als为什么数据集中的“预览数据”功能似乎可以正常工作,而“映射数据流”中的“数据预览”功能却不能正常工作?

3 个答案:

答案 0 :(得分:2)

我尝试了这一点,“复制活动”和“数据流”源设置之间没有什么不同。

我上传了一个csv文件,并在Blob存储中将数据更改为与您相同。

Test.csv:

enter image description here

复制活动设置和数据预览的结果: enter image description here

数据流源数据设置和数据预览的结果: enter image description here enter image description here

请检查数据流中的设置。

参考教程:Export Table to CSV,它也适用于Azrue SQL数据库。

更新

我向Azure支持寻求帮助,他们进行了测试并且存在相同的错误。

Azure支持人员回答了我,并说明原因: enter image description here

enter image description here

希望这会有所帮助。

答案 1 :(得分:2)

遇到同样问题的人,现在微软已经在数据流中启用了多行功能。现在我们可以使用带有多行值的 csv 文件

enter image description here

如果您仍然遇到问题,请检查这个

https://github.com/MicrosoftDocs/azure-docs/blob/master/articles/data-factory/data-flow-troubleshoot-guide.md#error-code-df-executor-systeminvalidjson-1

答案 2 :(得分:1)

我们正在为文本分隔的数据集的ADF数据流添加多行字符串处理。我们将在几次迭代中启用该功能。

此之前的解决方法是将数据从CSV复制到Parquet,然后通过数据流源转换使用该Parquet数据集。