繁体   English   中英

Azure 数据工厂从 csv 文件的列名中删除空格

[英]Azure Data Factory removing spaces from column names of csv file

我对 azure 数据工厂有点陌生,如果我遗漏了任何明显的东西,我深表歉意。 我已经进行了几次搜索,但找不到任何非常合适的内容。

所以情况是我们有一个现有的管道,它将采用 csv 文件的路径并将其作为分隔数据集传递。 作为接收器,它使用镶木地板数据集。 这是一个通用过程,我们可以将任何分隔文件传递到其中,并将其输出为 parquet。

这一直运行良好,但现在我们已经开始接收标题中带有空格和特殊字符的文件,这会导致输出拼花失败。 不幸的是,我们无法控制收到的文件的格式,因此我无法在源头上处理此问题。

我想做的是在摄取文件时用下划线替换标题中的任何空格和其他特殊字符。 如果我在内部执行此操作,我可以快速创建一个 powershell 脚本来执行此操作。 我曾想过在 AFD 中创建一个自定义任务来调用 powershell 脚本在 blob 存储中执行此操作,但这似乎比应有的更复杂。 我还能做些什么来让这个过程正常工作,同时保持它的通用性?

正如@Joel Cochran 提到的,您可以在选择转换中使用以下表达式来替换标题中的空格和特殊字符。

regexReplace($$,'[^a-zA-Z]','_')

来源:

在此处输入图片说明

选择转换中,删除自动映射并添加新的规则库映射以使用此表达式。

在此处输入图片说明

预览

在此处输入图片说明

假设您正在使用此活动,您可以不直接在复制活动中更改输出文件名。

解决方法是使用一个参数作为您可以清理的文件名输出。

  1. 您可以使用获取元数据活动从源 csv 文件中获取所有文件名。
  2. 然后使用 foreach 活动遍历这些文件。
  3. 在 foreach 活动中,您可以使用带有清除值的新名称设置输出文件名。

该函数可能如下所示:

@replace(@item.name, ' ', '_')

有关替换功能的更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM