将具有不同架构(列)的多个文件 (.csv) 合并/合并为单个文件 .csv - Azure 数据工厂

Posted

技术标签:

【中文标题】将具有不同架构(列)的多个文件 (.csv) 合并/合并为单个文件 .csv - Azure 数据工厂【英文标题】:Merge / Union multiple files (.csv) with different schema (columns) into single file .csv - Azure Data Factory 【发布时间】:2021-08-13 05:28:30 【问题描述】:

我想使用 Azure 数据工厂/Synapse Analytics 将具有不同架构的多个文件 (.csv) 合并/联合到一个文件 (.csv) 中。

例子:

文件 1,架构:

C1 C2 C3 C4 C5
01 02 03 04 05
01 02 03 04 05

文件 2,架构

C1 C5 C3
01 05 03
01 05 03

文件 3,架构:

C1 C4 C2
01 04 02
01 04 02

我的 expexted 输出应该是:

C1 C2 C3 C4 C5
01 02 03 04 05
01 02 03 04 05
01 03 05
01 03 05
01 02 04
01 02 04

所有文件都在同一个文件夹中

但我遇到以下问题,因为某些列未在所有文件中列出

"errorCode": "2200", "message": "ErrorCode=UserErrorInvalidColumnMappingColumnNotFound,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=找不到列映射中指定的列 'C2'在源数据中。,Source=Microsoft.DataTransfer.ClientLibrary,'", "failureType": "UserError", "target": "Copy_24a", "details": []

我尝试使用架构漂移,但结果不一样。

谁能告诉我如何做到这一点?

更新

现在,我正在尝试从数据流进行联合转换。我的来源是一个文件夹,我有几个/多个文件。如下:

但是,问题仍然存在。实际上,如果我检查预览,显示的信息是不正确的:

奇怪的是,直接从原点查看预览看起来不错,因为我想要结果(分隔文本):

希望任何人都可以提供帮助!

提前致谢!

【问题讨论】:

【参考方案1】:

使用数据流联合变换https://docs.microsoft.com/en-us/azure/data-factory/data-flow-union

【讨论】:

快完成了!事实是我想执行一个联合(追加行)。但是,我有 1 个来源,其中有多个/多个文件。我不想为每个文件创建一个源。所有文件都在同一个文件夹中,这个文件夹是我的来源。你有什么见解吗?谢谢! @Mark Kromer MSFT 用于 delimitedText 的合并模式功能(如 CDM 源)将有所帮助,因此它可以只是 1 个源

以上是关于将具有不同架构(列)的多个文件 (.csv) 合并/合并为单个文件 .csv - Azure 数据工厂的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Excel 中组合具有不同列名和列顺序的多个 CSV 文件?

在 Dataflow 中使用啥转换来合并具有不同列的 csv 文件,同时将它们加载到 BigQuery?

将来自不同文件夹的多个 csv 文件(相似名称)合并到一个 csv 中并逐行绑定它们 [关闭]

使用 Spark 将多个文件中的列合并到单个文件中

将共享 2 列的多个 CSV 文件合并到一个唯一的数据框中

在 Excel 查询编辑器中合并具有不同列数的 CSV 文件文件夹