concatDataframe中的所有列

qnyhuwrf  于 2021-05-24  发布在  Spark
关注(0)|答案(1)|浏览(160)

我正在databricks中编写python代码,我正在使用spark2.4.5。
我需要一个有两个参数的自定义项。第一个是dataframe,第二个是skid,在这个dataframe中,我需要散列这个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
13z8s7eq

13z8s7eq1#

没有必要使用自定义项。concat\u ws应该做到这一点:

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

相关问题