连接数据框中的所有列
Posted
技术标签:
【中文标题】连接数据框中的所有列【英文标题】:Concat all columns in a dataframe 【发布时间】:2020-10-07 16:17:21 【问题描述】:我正在 Databricks 中编写 Python 代码,我正在使用 spark 2.4.5。
我需要一个带有两个参数的 UDF。第一个是 Dataframe,第二个是 SKid,在该 Dataframe 中,我需要对该 DataFrame 上的所有列进行哈希处理。
我已经编写了以下代码,但我需要知道如何连接动态数据框中的所有列?
def xHashDataframe(df,skColumn):
a = df.select(
col(skColumn)
,md5(
concat(
col("column1"), lit("~"),
col("column2"), lit("~"),
...
col("columnN"), lit("~")
)).alias("RowHash")
)
return a
【问题讨论】:
【参考方案1】:没有必要使用 UDF。 concat_ws 应该可以解决问题:
df.withColumn("RowHash", F.md5(F.concat_ws("~", *df.columns))).show(truncate=False)
【讨论】:
以上是关于连接数据框中的所有列的主要内容,如果未能解决你的问题,请参考以下文章
使用 pyspark 数据框中的复制名称加入后使用左表中的所有列进行分组