apache-spark - 从 collect_set 创建列值的唯一方式
问题描述
collect_set
在聚合函数中使用时,我得到[]
了None
值,但我希望[None]
通常像 pyspark 中的数组值。有什么办法可以代替吗?对于 Non-None 值,它看起来已经可以了。
解决方案
这是你要找的吗?
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')))
推荐阅读
- azure - 如何备份 Azure 自定义托管映像
- embedded-linux - 无法为与 ESP WROOM32 接口的 Cavli C10AM 进行 pppos 客户端初始化
- spring-boot - 从不同的 Spring Boot 2 应用程序调用我的 Django Rest 应用程序中的 API
- javascript - 更新变量的值
- asp.net - 在网络上的另一台机器上访问 IIS 上已部署的网站
- perl - Perl 的 index() 的奇怪行为在使用空 substr 调用时使用 vs 没有 Encode::decode()
- python - 在循环中向 pandas df 添加新行
- dask - 集群之间的 Dask 切换或更改集群上下文
- sql - 由于表的哪些索引在 Oracle 中变得不可用,如何调试哪个 DB 用户对表进行了更改?
- python - TensorFlow 中切片输入的梯度为无