Azure Synapse Union - 如何合并表而不是添加行
Azure Synapse Union - How do I merge tables instead of adding rows
我正在寻找一种方法将三个单独的数据集(.csv 格式)合并到 Azure Synapse 中的一个,然后将其作为新的 .csv 存储在 Azure Blob 存储中。我正在使用基于本教程的联合数据流:https://www.youtube.com/watch?v=vFCNbHqWct8
一般来说,新文件的提取和保存是有效的。但是,在合并文件时,我收到的行数是源数据集中行数的 3 倍。每个源数据集各有 36 个条目。每个数据集中的 CustomerID 范围为 1-36。
数据集 1 有 2 列:CustomerID,loyalty_level
数据集 2 有 3 列:CustomerID、name、email
数据集 3 有 2 列:CustomerID、salestotal
当我 运行 它时,我得到了一个包含 108 行的数据集,而不是期望的 36 行。我的错误在哪里?我是否错误地接近了这个过程?
您得到 108 行,因为并集转换将 3 个单独的数据集合并为 1 个。如果您观看 video in the union transformation documentation page,它描述了此转换的行为。
要获得您想要的结果,您需要使用 join transformation。使用 CustomerID
作为连接条件,这会将数据集连接在一起,使行数保持在 36。
需要注意的一件事是您选择的加入类型。如果您的一个文件中有客户,而另一个文件中没有,您可以删除记录。 post 很好地描述了不同类型的联接。我建议您对这种不同类型的联接有一个深入的了解。
我正在寻找一种方法将三个单独的数据集(.csv 格式)合并到 Azure Synapse 中的一个,然后将其作为新的 .csv 存储在 Azure Blob 存储中。我正在使用基于本教程的联合数据流:https://www.youtube.com/watch?v=vFCNbHqWct8
一般来说,新文件的提取和保存是有效的。但是,在合并文件时,我收到的行数是源数据集中行数的 3 倍。每个源数据集各有 36 个条目。每个数据集中的 CustomerID 范围为 1-36。
数据集 1 有 2 列:CustomerID,loyalty_level 数据集 2 有 3 列:CustomerID、name、email 数据集 3 有 2 列:CustomerID、salestotal
当我 运行 它时,我得到了一个包含 108 行的数据集,而不是期望的 36 行。我的错误在哪里?我是否错误地接近了这个过程?
您得到 108 行,因为并集转换将 3 个单独的数据集合并为 1 个。如果您观看 video in the union transformation documentation page,它描述了此转换的行为。
要获得您想要的结果,您需要使用 join transformation。使用 CustomerID
作为连接条件,这会将数据集连接在一起,使行数保持在 36。
需要注意的一件事是您选择的加入类型。如果您的一个文件中有客户,而另一个文件中没有,您可以删除记录。 post 很好地描述了不同类型的联接。我建议您对这种不同类型的联接有一个深入的了解。