【问题标题】:Issue with CSV as a source in datafactory将 CSV 作为数据工厂中的源的问题
【发布时间】:2020-06-05 21:43:58
【问题描述】:

我有一个 CSV

"Heading","Heading","Heading",LF
"Data1","Data2","Data3",LF
"Data4","Data5","Data6",LF

对于上面的 CSV 行限制器是 LF

问题是最后一个逗号。当我在数据工厂的复制活动源中将第一列设置为标题并将行跳过为 0 后尝试预览数据时,它会抛出错误,指出最后一列为空。

如果我删除最后一个 comma.ie

"Heading","Heading","Heading"LF
"Data1","Data2","Data3"LF
"Data4","Data5","Data6"LF

它会正常工作的。

无法编辑 CSV,因为每个 CSV 可能包含 50 万条记录。

如何解决?


添加详情:

CSV 我正在上传enter image description here

我的天蓝色门户设置 enter image description here

预览数据的错误消息 enter image description here

如果我删除第一行作为标题,我可以看到一个空列 enter image description here

【问题讨论】:

  • 嗨,不知道你的意思。您的行分隔符是 LF?您能否发布您的复制管道 json 代码?还是门户上的配置截图?
  • LF 换行符。(\n)。问题在于,由于输入 CSV 在换行之前作为逗号,因此它被视为空列。因此,如果我将第一行作为列标题,则会出现错误,说列名不能为空。

标签: azure azure-data-factory


【解决方案1】:

请尝试将Row delimiter设置为Line Feed(\n)

我测试了您的示例 csv 文件,它工作正常。

输出:


我尝试与您创建相同的文件并重现您的问题。这似乎是 adf 的检查机制。您需要删除第一行作为标题选择以逃避此检查。如果您不想这样做,则必须预处理 CSV 文件。

我建议您使用以下两种解决方法。

1.使用Azure Function Http Trigger。您可以将 CSV 文件名作为参数传递给 Azure Function。然后使用 Azure Blob Storage SDK 处理您的 csv 文件以删除最后一个逗号。

https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-http-webhook

2.使用 Azure 流分析。您可以将 Blob 存储配置为输入并创建另一个容器作为输出。然后使用 SQL 查询来处理您的 CSV 数据。

https://docs.microsoft.com/en-us/azure/stream-analytics/stream-analytics-quick-create-portal

【讨论】:

  • 对我来说,我收到错误“在列名 4 中发现空字符串或空字符串。请确保列名不为空,然后重试。活动 ID:e05af597-836b-4c68-8f74-61cc3b3d08d9 " 具有相同的 csv。
  • @boss 我们之间有什么不同吗?能否请您与我发布相同的配置屏幕截图?还有你的示例 csv 文件截图?
  • 我添加了我的图片作为新答案,因为我无法编辑我的问题。
  • @boss 请查看更新答案,您可以采用两种解决方法。
  • 谢谢。让我试试
猜你喜欢
  • 2021-10-26
  • 1970-01-01
  • 1970-01-01
  • 2022-06-11
  • 1970-01-01
  • 2019-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多