![](/img/trans.png)
[英]PySpark: How to apply UDF to multiple columns to create multiple new columns?
[英]How to create a Pyspark UDF for adding new columns to a dataframe
我有一些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並使用它。 請幫忙。
如果要添加多列,可以將select
與*
配合使用:
df.select("*", some_column, another_column, ...)
您不應該使用UDF,因為它們不能創建多個結果。
但是,您可以在其他答案中編寫與此類似的select語句:
df.select(col("*"), lit(a).as("a"), lit(b).as("b"), ...)
您還可以自動執行以下添加操作:
val fieldsMap = Map("a" -> a, "b" -> b)
df.select(Array(col("*")) ++ fieldsMap.map(e => lit(e._2).as(e._1)) : _*)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.