不同的映射条件

问题描述 投票:0回答:0

我正在做 ETL,我的主要数据流经数据块中的管道,我想将它与另一个文件合并,我在其中匹配来自两个数据集的 6 列。但是,这些列中的一些可以在某些行中包含单词“No”,这意味着,如果在一行中某个列包含此值,则不应将其合并到合并过程中。这意味着如果某一行只有 1 列的值为“否”,则其他 5 列将用于合并。这意味着可以合并 1、2、3、4、5 或 6 个匹配列,具体取决于它们的内容。

我尝试遍历不同的列并保存那些没有“否”值的列,使用它们进行匹配但仍然没有成功。

考虑为每种可能的组合创造条件,但这会导致组合数量过多。有人知道如何实现这一目标。或者任何对这种情况有帮助的图书馆?在此示例中,我有数据集 A,其中有 1-6 列,并希望将数据集 B 与 A-F 列匹配。但是,我不匹配值为“No”的列,因此我从 G 列和 H 列获取值到合并的数据集。在第 1 行,使用了所有匹配的列,在第 2 行,从映射中排除了 column1=columnA,在第 3 行,仅使用 column6=columnF 来合并两个数据集。

Column1 Column2 Column3 Column4 Column5 Column6
1       1       2       1       1       1
45      2       4       3       3       2
3       2       1       4       3       12 

ColumnA ColumnB ColumnC ColumnD ColumnE ColumnF ColumnG ColumnH
1      1        2       1       1       1       4       5
No     2        4       3       3       2       5       6
No     No       No      No      No      12      4       8

结果:

1Columns merged and matching and columns that are not set as

python dataframe pyspark etl
© www.soinside.com 2019 - 2024. All rights reserved.