我正在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
答案 0 :(得分:4)
不需要使用UDF。 concat_ws应该可以解决问题:
df.withColumn("RowHash", F.md5(F.concat_ws("~", *df.columns))).show(truncate=False)