簡體   English   中英

如何創建Pyspark UDF以將新列添加到數據框

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM