我有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并使用它。请帮忙。
答案 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"), ...)