当 CSV 在 header 列中有 space 时,ADF 复制 Activity 无法将 CSV 转换为 Parquet
ADF Copy Activity Fails CSV to Parquet when CSV has space in header column
在 Azure 数据工厂中使用副本 activity 将具有 header 行的典型 CSV 文件复制到 Parquet 接收器时,由于列名在header.
中有 space 的 CSV
The column name is invalid. Column name cannot contain these
character:[,;{}()\n\t=]
CSV 是竖线分隔的,使用数据集的预览功能可以很好地显示第一行标记为 header。我看不到在副本 activity 的镶木地板侧(水槽)处理此 use-case 的选项。我意识到这可能可以使用数据流来转换列名以删除 space 来解决,但这是否意味着本机副本 activity 无法处理 space 中的这种情况包含在 header 行中?
编辑:我应该补充说数据集使用默认映射,这样我们就可以对任何 CSV 到 PARQUET 副本使用相同的数据集。提供的答案将适用于显式映射,但我们看不到使用 default/dynamic 映射的人的任何解决方案,因为我们无权访问列名以删除 spaces.
我们可以从官方文档中注意到 here
Error code: ParquetInvalidColumnName
Message: The column name is invalid. Column name cannot contain these character:[,;{}()\n\t=]
Cause: The column name contains invalid characters.
Resolution: Add or modify the column mapping to make the sink column name valid.
如果您想继续使用副本 activity,有几种解决方法
1.确保您已将列定界符选择为管道 (|)
2。如果可行,在映射设置 > 导入模式中重命名目标列中不带空格的列名。
这仍然是一个持续的问题或请求,请关注 here 了解更多信息。
在 Azure 数据工厂中使用副本 activity 将具有 header 行的典型 CSV 文件复制到 Parquet 接收器时,由于列名在header.
中有 space 的 CSVThe column name is invalid. Column name cannot contain these character:[,;{}()\n\t=]
CSV 是竖线分隔的,使用数据集的预览功能可以很好地显示第一行标记为 header。我看不到在副本 activity 的镶木地板侧(水槽)处理此 use-case 的选项。我意识到这可能可以使用数据流来转换列名以删除 space 来解决,但这是否意味着本机副本 activity 无法处理 space 中的这种情况包含在 header 行中?
编辑:我应该补充说数据集使用默认映射,这样我们就可以对任何 CSV 到 PARQUET 副本使用相同的数据集。提供的答案将适用于显式映射,但我们看不到使用 default/dynamic 映射的人的任何解决方案,因为我们无权访问列名以删除 spaces.
我们可以从官方文档中注意到 here
Error code: ParquetInvalidColumnName
Message:
The column name is invalid. Column name cannot contain these character:[,;{}()\n\t=]
Cause: The column name contains invalid characters.
Resolution: Add or modify the column mapping to make the sink column name valid.
如果您想继续使用副本 activity,有几种解决方法
1.确保您已将列定界符选择为管道 (|)
2。如果可行,在映射设置 > 导入模式中重命名目标列中不带空格的列名。
这仍然是一个持续的问题或请求,请关注 here 了解更多信息。