簡體   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