我想根据 pyspark 数据框的两列中的唯一值对列进行分组。数据框的输出应该是这样的,一旦某个值用于 groupby 并且如果它存在于另一列中,那么它不应该重复。
|------------------|-------------------|
| fruit | fruits |
|------------------|-------------------|
| apple | banana |
| banana | apple |
| apple | mango |
| orange | guava |
| apple | pineapple |
| mango | apple |
| banana | mango |
| banana | pineapple |
| -------------------------------------|
我尝试使用单列进行分组,需要对其进行修改或需要一些其他逻辑。
df9=final_main.groupBy('fruit').agg(collect_list('fruits').alias('values'))
我从上述查询中得到以下输出;
|------------------|--------------------------------|
| fruit | values |
|------------------|--------------------------------|
| apple | ['banana','mango','pineapple'] |
| banana | ['apple'] |
| orange | ['guava'] |
| mango | ['apple'] |
|------------------|--------------------------------|
但我想要以下输出;
|------------------|--------------------------------|
| fruit | values |
|------------------|--------------------------------|
| apple | ['banana','mango','pineapple'] |
| orange | ['guava'] |
|------------------|--------------------------------|