pyspark - 在 pyspark 的 collect_list 中包含空值
问题描述
我试图在collect_list
使用时包含空值pyspark
,但collect_list
操作不包括nulls
。我查看了以下帖子Pypsark - Retain null values when using collect_list。但是,给出的答案不是我想要的。
我有一个df
这样的数据框。
| id | family | date |
----------------------------
| 1 | Prod | null |
| 2 | Dev | 2019-02-02 |
| 3 | Prod | 2017-03-08 |
到目前为止,这是我的代码:
df.groupby("family").agg(f.collect_list("date").alias("entry_date"))
这给了我这样的输出:
| family | date |
-----------------------
| Prod |[2017-03-08]|
| Dev |[2019-02-02]|
我真正想要的是如下:
| family | date |
-----------------------------
| Prod |[null, 2017-03-08]|
| Dev |[2019-02-02] |
有人可以帮我吗?谢谢!
解决方案
一种可能的解决方法是用另一个值替换所有空值。(也许不是最好的方法,但它仍然是一个解决方案)
df = df.na.fill("my_null") # Replace null with "my_null"
df = df.groupby("family").agg(f.collect_list("date").alias("entry_date"))
应该给你:
| family | date |
-----------------------------
| Prod |[my_null, 2017-03-08]|
| Dev |[2019-02-02] |
推荐阅读
- android - 我应该为我的 Android 应用创建 app-ads.txt 吗?
- ios - 如何将相机拍摄的图像传递给第二个视图控制器?迅速
- google-schemas - Gmail is showing incorrect flight reservation highlights
- c# - When trying to connect my windows form c# application with Entity Framework the DbContext and entity classes didn't load from database?
- xml - 如何将 XML DTD 实体分配给属性值
- javascript - 将 Google Sheet 数据合并到 Google Doc 模板的 Google Apps 脚本在第一行数据之后没有迭代
- laravel - 雄辩的同一张桌子有不同的关系
- git - 尽管使用了 ssh 密钥,但 Github 帐户未链接
- reactjs - 使用 Material UI 在 React.js 中使用单个道具发送多个组件
- python - 时间戳转换并找到它的区别