如何创建Pyspark UDF以向数据框添加新列

时间:2017-08-17 10:29:41

标签: python apache-spark pyspark user-defined-functions

我有5列要添加到数据框中。 (A - E)这些列的值存储在(a-e)变量中。

而不是使用

 df.withColumn("A", a).withColumn("B", b).withColumn..... etc 

我们可以用udf吗?

目前我已命名功能:

     def add_col(df_name,newCol,value):
         df = df_name
         df = df.withColumn(newCol, value)
         return df

但我无法理解如何将其转换为UDF并使用它。请帮忙。

2 个答案:

答案 0 :(得分:1)

如果您想添加多个列,可以将select*一起使用:

df.select("*", some_column, another_column, ...)

答案 1 :(得分:1)

您不应该使用UDF,他们无法创建多个结果。

但是你可以在其他答案中编写与此类似的select语句:

<#assign end_date = .now>
<#assign start_date = .now?replace('dd', 01)>

您还可以自动执行此添加:

df.select(col("*"), lit(a).as("a"), lit(b).as("b"), ...)