開始使用免費開始

選取

Spark 中對應 SQL SELECT 的是 .select() 方法。這個方法可以接受多個引數——每個你想選取的欄位各一個。這些引數可以是字串形式的欄位名稱(每個欄位一個字串),也可以是欄位物件(使用 df.colName 語法)。當你傳入欄位物件時,就能在該欄位上做加減等運算,來變更其中的資料,就像在 .withColumn() 裡做的一樣。

.select().withColumn() 的差別在於:.select() 只會回傳你指定的那些欄位;而 .withColumn() 會回傳整個 DataFrame 的所有欄位,外加你新定義的那一欄。通常在一開始就先丟掉不需要的欄位會比較好,這樣在整理資料時就不會一直帶著多餘的資料。在這種情況下,你應該使用 .select(),而不是 .withColumn()

請記住,名稱為 spark 的 SparkSession 已經在你的工作區裡,還有 Spark DataFrame flights

本練習屬於課程

PySpark 基礎

檢視課程

練習說明

  • 以字串傳入欄位名稱,從 flights 選取 "tailnum""origin""dest" 這三個欄位。將結果存成 selected1
  • 使用 df.colName 語法選取 "origin""dest""carrier" 這三個欄位,接著使用已為你定義好的兩個篩選條件(filterAfilterB)來過濾,只保留從 SEA 飛往 PDX 的航班。將結果存成 selected2

動手互動練習

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

# Select the first set of columns
selected1 = flights.select("____", "____", "____")

# Select the second set of columns
temp = flights.select(____.____, ____.____, ____.____)

# Define first filter
filterA = flights.origin == "SEA"

# Define second filter
filterB = flights.dest == "PDX"

# Filter the data, first by filterA then by filterB
selected2 = temp.filter(____).filter(____)
編輯並執行程式碼