繁体   English   中英

用空值连接两列火花数据框

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM