Sparkのデータ型を調べる
Chapter 1では、sparklyr が参照できるSparkのDataFrameを一覧表示する src_tbls() をすでに学びました。また、R側でtibbleのカラムを確認する glimpse() も使いましたね。
sparklyr には、R側でtibbleのカラムを調べるための sdf_schema() という関数があります。呼び出し自体は簡単ですが、戻り値の扱いには少し工夫が必要です。
sdf_schema(a_tibble)
戻り値はリスト形式で、各要素は2つの要素を持つリストになっており、各カラムの名前とデータ型が格納されています。この演習では、データ型をわかりやすく確認するためのデータ変換処理を紹介します。
以下は、RのデータとSparkのデータ型の対応表です。なお、sparklyr では現在これら以外のデータ型はサポートされていません。
| R type | Spark type |
|---|---|
| logical | BooleanType |
| numeric | DoubleType |
| integer | IntegerType |
| character | StringType |
| list | ArrayType |
この演習はコースの一部です
sparklyr を使った Spark 入門(R)
演習の手順
Spark接続は spark_conn としてあらかじめ作成されています。Sparkに格納されたトラックメタデータに紐付けられたtibbleは track_metadata_tbl として定義済みです。
sdf_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()