[英]Concatenate two columns of spark dataframe with null values
我的 spark 数据框中有两列
First_name Last_name
Shiva Kumar
Karthik kumar
Shiva Null
Null Shiva
我的要求是通过用逗号连接上述两列并处理空值来向数据帧添加一个新列。
我曾尝试使用 concat 和 coalesce,但只有当两列都可用时,我才能获得带有逗号分隔符的输出
预期输出
Full_name
Shiva,kumar
Karthik,kumar
Shiva
Shiva
concat_ws
为您连接并处理null
值。
df.withColumn('Full_Name', F.concat_ws(',', F.col('First_name'), F.col('Last_name'))
您可以使用lit
:
import pyspark.sql.functions as F
f = df.withColumn('Full_Name', F.concat(F.col('First_name'), F.lit(','), F.col('Last_name'))).select('Full_Name')
# fix null values
f = f.withColumn('Full_Name', F.regexp_replace(F.col('Full_Name'), '(,Null)|(Null,)', ''))
f.show()
+-------------+
| Full_Name|
+-------------+
| Shiva,Kumar|
|Karthik,kumar|
| Shiva|
| Shiva|
+-------------+
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.