首页 > 解决方案 > 从 collect_set 创建列值的唯一方式

问题描述

collect_set在聚合函数中使用时,我得到[]None值,但我希望[None]通常像 pyspark 中的数组值。有什么办法可以代替吗?对于 Non-None 值,它看起来已经可以了。

标签: apache-sparkpyspark

解决方案


这是你要找的吗?

import pyspark.sql.functions as f
df = spark.createDataFrame([(1, 'A'), (2, None), (1, None), (3, 'B')], ['col1', 'col2'])
df = df.fillna('None')
display(df.groupBy('col1').agg(f.collect_set('col2').alias('setCol2')))

推荐阅读