Apache spark 合并,合并spark数据框中的2列
我有两个不同的数据帧,我能够根据g_id将它们连接在一起。如下所示:Apache spark 合并,合并spark数据框中的2列,apache-spark,pyspark,apache-spark-sql,Apache Spark,Pyspark,Apache Spark Sql,我有两个不同的数据帧,我能够根据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
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 dataframe有一个类似的名为G_Number2的列,这两个列的组合解决了缺少的部分。。。这意味着一列有一些信息,另一列有一些。将两者结合在一起就是所需的输出
我如何在pyspark中实现目标??我尝试了concat函数。。但我离得太远了。
提前感谢您。您可以使用
coalesce
:
import pyspark.sql.functions as f
df.withColumn('Output', f.coalesce('G_Number2', 'G_Number1'))
请注意,当两列都不为空时,这将优先排序
G_Number2
列,如果需要其他方式,只需切换两列的顺序即可。谢谢。这太棒了。