始める無料で始める

Spark へのデータのコピー

Spark を使って実際の分析を行うには、まずデータを Spark に読み込む必要があります。sparklyr には、CSV ファイルを Spark に読み込む spark_read_csv() などの関数が用意されています。より一般的な方法として、R から Spark へデータをコピーする手段も有用です。これには dplyrcopy_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(___)
コードを編集して実行