合并数据框中的所有列

时间:2020-10-07 16:17:21

标签: python apache-spark pyspark azure-databricks

我正在Databricks中编写Python,并且正在使用spark 2.4.5。

我需要一个带有两个参数的UDF。第一个是数据框,第二个是SKid,在该数据框中,然后我需要对该数据框上的所有列进行哈希处理。

我已经编写了以下代码,但是我需要知道如何合并动态数据框中的所有列?

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 个答案:

答案 0 :(得分:4)

不需要使用UDF。 concat_ws应该可以解决问题:

df.withColumn("RowHash", F.md5(F.concat_ws("~", *df.columns))).show(truncate=False)