如何在火花数据框中将列连接到一个
Posted
技术标签:
【中文标题】如何在火花数据框中将列连接到一个【英文标题】:how to concat to columns to one in spark data frame 【发布时间】:2021-01-08 10:22:58 【问题描述】:如何在 python 中将 spark 中数据框的 2 列合并为 1 列? 我在网上找到了这个,但我得到了错误:
df4.select(concat(col("originaltitle"),lit(','),
col("title"),lit(','),col("lname")).as("FullName")).show(false)
错误:
文件“”,第 2 行 col("title"),lit(','),col("lname")).as("FullName"))
^
SyntaxError: 无效语法
【问题讨论】:
【参考方案1】:除了修复语法错误(使用alias
而不是as
),您还可以使用concat_ws
,它代表用分隔符连接。这样可以避免您多次指定逗号。
df4.select(
concat_ws(
',',
col("originaltitle"),
col("title"),
col("lname")
).alias("FullName")
).show(truncate=False)
【讨论】:
如果我有来自两个不同数据框的两个不同列呢? @elham 那么你需要先将两个数据帧合并成一个数据帧。 但它们的大小不同 @elham 您可以加入数据框,无论其大小。你只需要一把钥匙就可以加入。 但是其中一个重复很多,而且我数据的频率很重要【参考方案2】:错误很明显,由于as
关键字,您的语法无效。
在 Pyspark 中,您应该使用 alias
而不是 as
:
df4.select(
concat(col("originaltitle"),lit(','), col("title"),lit(','), col("lname")
).alias("FullName")
).show(truncate=False)
【讨论】:
如果我有来自两个不同数据框的两个不同列呢?以上是关于如何在火花数据框中将列连接到一个的主要内容,如果未能解决你的问题,请参考以下文章