探索 Spark 資料型別
你先前(在第 1 章)已經看過用來列出 Spark 中 sparklyr 可見之 DataFrame 的 src_tbls()。你也看過在 R 端用來探索 tibble 欄位的 glimpse()。
sparklyr 提供了名為 sdf_schema() 的函式,可在 R 端探索 tibble 的欄位。呼叫很簡單;比較麻煩的是處理它的回傳值。
sdf_schema(a_tibble)
回傳值是一個串列,每個元素本身也是含有兩個元素的串列,分別是各欄位的名稱與資料型別。這個練習提供了一段資料轉換,讓你更容易檢視這些型別。
以下是 R 資料型別對應到 Spark 資料型別的比較。其他型別目前不受 sparklyr 支援。
| R type | Spark type |
|---|---|
| logical | BooleanType |
| numeric | DoubleType |
| integer | IntegerType |
| character | StringType |
| list | ArrayType |
本練習屬於課程
使用 R 的 sparklyr:Spark 入門
練習說明
已為你建立名為 spark_conn 的 Spark 連線。連到 Spark 中曲目中繼資料的 tibble 已預先定義為 track_metadata_tbl。
- 呼叫
sdf_schema()以取得曲目中繼資料的綱要(schema)。 - 對
schema執行轉換程式碼,將結果以更易讀的 tibble 格式顯示。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# track_metadata_tbl has been pre-defined
track_metadata_tbl
# Get the schema
(schema <- ___(___))
# Transform the schema
schema %>%
lapply(function(x) do.call(data_frame, x)) %>%
bind_rows()