当有数组存储在列中时,我对pyspark-df还不太熟悉,我正在寻找一些帮助来尝试基于2个pysparkDataframeMap一个列,其中一个是引用df。
参考Dataframe(每个组的子组数不同):
| Group | Subgroup | Size | Type |
| ---- | -------- | ------------------| --------------- |
|A | A1 |['Small','Medium'] | ['A','B'] |
|A | A2 |['Small','Medium'] | ['C','D'] |
|B | B1 |['Small'] | ['A','B','C','D']|
源Dataframe:
| ID | Size | Type |
| ---- | -------- | ---------|
|ID_001 | 'Small' |'A' |
|ID_002 | 'Medium' |'B' |
|ID_003 | 'Small' |'D' |
在结果中,每个id都属于每个组,但基于引用df,对于其子组是独占的,结果如下所示:
| ID | Size | Type | A_Subgroup | B_Subgroup |
| ---- | -------- | ---------| ---------- | ------------- |
|ID_001 | 'Small' |'A' | 'A1' | 'B1' |
|ID_002 | 'Medium' |'B' | 'A1' | Null |
|ID_003 | 'Small' |'D' | 'A2' | 'B1' |
1条答案
按热度按时间ct3nt3jp1#
你可以使用
array_contains
条件,并透视结果: