将具有不同架构(列)的多个文件 (.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?