我想在Azure Synapse管道中合并多个csv文件。我将通过复制活动实现它,但我面临着一个问题。
有两种类型的源文件。一种有头文件(文件类型是"有头"),另一种没有头文件(文件类型是"无头")。
我想用"with header"文件的头设置方案,但是我不知道怎么做。
我认为,可以通过以下方式实现,可能吗?
1.使用"查找活动"获取文件"带标头"的列名列表。
2.将列名列表设置为数组类型的变量。
3.使用变量在"复制活动"中Map并合并多个文件。
可以使用列名列表进行Map吗?
等待您的帮助。任何答案将不胜感激。
谢谢你。
它被输入到问题的详细信息中。
1条答案
按热度按时间2mbi3lxu1#
可以使用列名列表进行Map吗?
不可以,您不能在动态Map中使用列列表,您需要在
json
表单中指定Map,如下所示我想用"with header"文件的头设置方案,但是我不知道怎么做。
with header
和without header
等文件**之后,首先需要使用Get Metadata活动获取不带标头的文件列表。
然后使用
foreach activity
将头添加到其中,并将schema添加到每个文件,dataflow
现在将get metadata的输出传递给for-each活动。在此之后,采取数据流活动,并添加标题到文件,然后在文件上创建标题列,例如
将
without header
文件设置为源1,不要选择第一行作为标题.将
header
文件设置为源2,不要选择第一行作为标题.在
SurrogateKey1
活动中,输入row
作为关键字列,输入**2
**作为起始值。在
SurrogateKey2
活动中,输入row
作为关键字列,输入**1
**作为起始值。然后我们可以在
Union1
活动上合并SurrogateKey1
流和SurrogateKey2
流。然后,我们可以在
Sort1
活动中按row
对这些行进行排序。然后在接收器Map中删除行列并将其保存到带有标题文件夹的文件中:
成功执行: