我有2个不同的数据框,并且能够基于g_id将它们连接在一起。如下所示:
df1 = dfx.join(df_gi, regexp_extract(trim(dfx.LOCATION), ".*/GDocs/([0-9]{1,5})/.*", 1) == df_gi.g_id, "inner")\
.select (dfx["*"], df_gi["G_Number2"])
现在,dfx daraframe有一个名为G_Number1的列,而df_gi数据帧有一个名为G_Number2的相似的列,这两个列的组合解决了缺失的部分……意味着一列有一些信息,另一列有一些信息。需要将两者结合在一起。
如何在pyspark中实现?我尝试了concat函数..但是我走的很远。 预先谢谢你。
答案 0 :(得分:1)
您可以使用coalesce
:
import pyspark.sql.functions as f
df.withColumn('Output', f.coalesce('G_Number2', 'G_Number1'))
请注意,当G_Number2
列都不为空时,它将优先处理{{1}}列,如果需要另一种方法,只需切换两列的顺序即可。