開始使用免費開始

進一步解析

你已經把這個資料集整理成與原本大不相同的格式,但還有幾件事要完成。你需要先將欄位資料整理好,方便之後分析使用,並移除幾個中繼欄位。

spark 內容已可使用,且 pyspark.sql.functions 已以 F 作為別名。pyspark.sql.types 中的型別也已匯入。split_df DataFrame 狀態與你上次留下時相同。別忘了,你可以在主控台區域對 DataFrame 使用 .printSchema() 來查看欄位名稱與型別。

⚠️ 注意: 若你看到 AttributeError,請重新整理練習,並在不按 執行程式碼 的情況下按一下 顯示答案

本練習屬於課程

使用 PySpark 清理資料

檢視課程

練習說明

  • 建立一個名為 retriever 的新函式,接受兩個引數:分割後的欄位(cols)與欄位總數(colcount)。此函式應回傳一個清單,內容為尚未被定義為欄位的項目(也就是清單中第 4 個項目之後的所有元素)。
  • 將此函式定義為 Spark 的 UDF,回傳字串的 Array。
  • 使用該 UDF 與 DataFrame 中可用的欄位,建立新欄位 dog_list
  • 移除欄位 _c0colcountsplit_cols

動手互動練習

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

def retriever(____, ____):
  # Return a list of dog data
  return ____[4:____]

# Define the method as a UDF
udfRetriever = ____(____, ArrayType(____))

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

# Remove the original column, split_cols, and the colcount
split_df = split_df.drop('____').____('____').____('____')
編輯並執行程式碼