Spark へのデータのコピー
Spark を使って実際の分析を行うには、まずデータを Spark に読み込む必要があります。sparklyr には、CSV ファイルを Spark に読み込む spark_read_csv() などの関数が用意されています。より一般的な方法として、R から Spark へデータをコピーする手段も有用です。これには dplyr の copy_to() 関数を使います。ただし注意が必要です。データのコピーは本質的に時間のかかる処理です。大規模データを扱う際のパフォーマンス最適化において、データを別の場所へコピーする操作をいかに避けるかが重要な戦略となります。
copy_to() は、Spark 接続(dest)とコピー先に渡すデータフレーム(df)の2つの引数を受け取ります。
データを Spark にコピーしたら、正しく転送されたかどうか確認したいところです。Spark に格納されているすべてのデータフレームの一覧は、src_tbls() を使って確認できます。この関数は Spark 接続(x)のみを引数として受け取ります。
このコースを通じて、Million Song Dataset の楽曲メタデータを探索していきます。Spark は100万行を超えるデータも難なく処理できますが、操作をシンプルにレスポンスよく保つために、1,000件の楽曲データのサブセットを使用します。用語を整理しておきましょう。トラックはデータセットの1行を指します。この1,000件のデータセットでは、トラックと曲は同じものを指します(ただし、100万行のフルデータセットには重複した曲が含まれていました)。
この演習はコースの一部です
sparklyr を使った Spark 入門(R)
演習の手順
track_metadata は、1,000件の楽曲名、アーティスト名、その他のメタデータを含むデータフレームで、ワークスペースにあらかじめ定義されています。
str()を使ってtrack_metadataデータセットの構造を確認しましょう。- ローカルの Spark クラスターに接続し、接続オブジェクトを
spark_connに格納しましょう。 copy_to()を使ってtrack_metadataを Spark クラスターにコピーしましょう。src_tbls()を使って、Spark で利用可能なデータフレームを確認しましょう。- Spark との接続を切断しましょう。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Load dplyr
___
# Explore track_metadata structure
___
# Connect to your Spark cluster
spark_conn <- spark_connect("___")
# Copy track_metadata to Spark
track_metadata_tbl <- ___(___, ___, overwrite = TRUE)
# List the data frames available in Spark
___(___)
# Disconnect from Spark
spark_disconnect(___)