開始使用免費開始

在 Spark 中使用使用者自訂函式

在操作 DataFrame 時,你已經看過 Spark 內建字串函式的威力。不過,當需求變複雜時,若只靠內建函式容易寫成一大串難以維護的巢狀呼叫。這時就可以用使用者自訂函式(User Defined Function,UDF)來處理 DataFrame。

在這個練習中,我們會使用 voter_df DataFrame,但你要把 first_name 欄位改成由名字與中間名組成。

pyspark.sql.functions 已以別名 F 匯入。pyspark.sql.types 中的類別也都已經匯入。

本練習屬於課程

使用 PySpark 清理資料

檢視課程

練習說明

  • 編輯 getFirstAndMiddle() 函式,回傳以空白分隔的姓名字串,但要排除 names 串列中的最後一個項目。
  • 將此函式定義為使用者自訂函式(UDF),回傳型別為字串。
  • 使用你的 UDF 在 voter_df 上建立一個名為 first_and_middle_name 的新欄位。
  • 顯示這個 DataFrame。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

def getFirstAndMiddle(names):
  # Return a space separated string of names
  return ' '.join(____)

# Define the method as a UDF
udfFirstAndMiddle = F.____(____, ____)

# Create a new column using your UDF
voter_df = voter_df.withColumn('first_and_middle_name', ____(____))

# Show the DataFrame
____
編輯並執行程式碼