python - 写入 Spark 数据帧时将 null 替换为空字符串
问题描述
null
将火花数据帧写入文件时,有没有办法用空字符串替换列中的值?
样本数据:
+----------------+------------------+
| UNIQUE_MEM_ID| DATE|
+----------------+------------------+
| 1156| null|
| 3787| 2016-07-05|
| 1156| null|
| 5064| null|
| 5832| null|
| 3787| null|
| 5506| null|
| 7538| null|
| 7436| null|
| 5091| null|
| 8673| null|
| 2631| null|
| 8561| null|
| 3516| null|
| 1156| null|
| 5832| null|
| 2631| 2016-07-07|
解决方案
看一下这个。你可以when
和otherwise
。
df.show()
#InputDF
# +-------------+----------+
# |UNIQUE_MEM_ID| DATE|
# +-------------+----------+
# | 1156| null|
# | 3787|2016-07-05|
# | 1156| null|
# +-------------+----------+
df.withColumn("DATE", F.when(F.col("DATE").isNull(), '').otherwise(F.col("DATE"))).show()
#OUTPUTDF
# +-------------+----------+
# |UNIQUE_MEM_ID| DATE|
# +-------------+----------+
# | 1156| |
# | 3787|2016-07-05|
# | 1156| |
# +-------------+----------+
将上述逻辑应用于数据框的所有列。当列值为空时,您可以使用 for 循环并遍历列并填充空字符串。
df.select( *[ F.when(F.col(column).isNull(),'').otherwise(F.col(column)).alias(column) for column in df.columns]).show()
推荐阅读
- npm - npm 发布天蓝色工件
- c - gethostbyname() 中的资源暂时不可用
- mysql - 在 MYSQL 工作台中显示来自其他表的不相关数据
- c# - Automapper - 不映射
- python - PCA 图降维
- powerbi - 由 If 语句度量引起的 Power BI 筛选问题
- python - 带有“&”的 imaplib 邮箱无法打开
- c# - 如何使用 C# 在 Unity 3D 中随机时间(相同位置)生成敌人?
- jms - DLQ 消息乱序
- javascript - 如何在不使用 Math.cbrt() 函数的情况下在 JavaScript 中计算立方根?如何用递归计算?