合并,合并Spark数据框中的2列

时间:2020-10-31 04:44:26

标签: apache-spark pyspark apache-spark-sql

我有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的相似的列,这两个列的组合解决了缺失的部分……意味着一列有一些信息,另一列有一些信息。需要将两者结合在一起。

enter image description here

如何在pyspark中实现?我尝试了concat函数..但是我走的很远。 预先谢谢你。

1 个答案:

答案 0 :(得分:1)

您可以使用coalesce

import pyspark.sql.functions as f

df.withColumn('Output', f.coalesce('G_Number2', 'G_Number1'))

请注意,当G_Number2列都不为空时,它将优先处理{{1}}列,如果需要另一种方法,只需切换两列的顺序即可。