【问题标题】: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
  

【问题讨论】:

    标签: python apache-spark pyspark azure-databricks


    【解决方案1】:

    没有必要使用 UDF。 concat_ws 应该可以解决问题:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-10
      • 1970-01-01
      • 2021-11-22
      • 1970-01-01
      • 2016-12-27
      相关资源
      最近更新 更多