在 Azure 数据流中将 1 行变成多行

Turn 1 row into multiple rows in Azure Data Flows

我有一个数据集:

Account No P01_Ind P02_Ind P03_Ind
1 Y Y N
2 Y N Y
3 N Y N

有没有一种方法可以在 Azure 数据流中添加转换,以便根据这些指标列,每一行都会变成 1 行或多行?在此示例中,我的数据集将变为:

Account No Indicator
1 P01
1 P02
2 P01
2 P03
3 P02

我查看了 Unpivot,但看不出它如何处理这些数据。请注意,此转换后的数据集将进行进一步的转换,并且不会在此步骤后下沉。感谢收到任何提示。谢谢

您可以使用 ConditionalSplit 转换,然后通过 'DerivedColumn' 转换向每个条件添加 Indicator 列。最后,使用 UnionSelect 转换来满足您的需要。(如果需要,您可以对 Select 转换的输出进行排序。)

步骤:

  1. 像您提供的那样创建一个数据集及其数据。

  1. 使用 ConditionalSplit 转换将数据拆分到不同的流。

  1. 向每个流添加 Indicator 列。

  1. 联合三流

  1. 使用'Select'转换删除P01_Ind、P02_Ind、P03_Ind列。

  2. 排序 Select 转换的输出。

'Sort'的数据预览:

这就像做一个逆透视一样简单,它会让你得到带有 'Y'/'N' 的行作为另一列,然后过滤掉其余的值以获得 'N' 的值。

你会得到

 1 P01_Ind Y
 2 P02_Ind Y
 3 P03_Ind N
 .....

下次您有 10 列而不是 3 列时它是可扩展的。