合并,合并火花数据框中的 2 列

Posted

技术标签:

【中文标题】合并,合并火花数据框中的 2 列【英文标题】:Merge, Combine 2 column in spark dataframe 【发布时间】:2020-10-31 04:44:26 【问题描述】:

我有 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 函数..但我很遥远。 提前谢谢你。

【问题讨论】:

【参考方案1】:

你可以使用coalesce:

import pyspark.sql.functions as f

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

注意,当G_Number2列都不为空时,这将优先考虑,如果您需要其他方式,只需切换两列的顺序即可。

【讨论】:

谢谢。这很棒。

以上是关于合并,合并火花数据框中的 2 列的主要内容,如果未能解决你的问题,请参考以下文章

将 2 列中的值合并为 pandas 数据框中的单列

合并组合框 1 列中的 2 列表格数据

在火花数据框中的每一行的地图类型列中按键排序

将来自一个数据框的值合并到 Pandas 中的新列中[重复]

计算火花数据框中的字数

根据 Pandas 中的公共列值合并两个数据框