1. 学ぶ
  2. /
  3. コース
  4. /
  5. sparklyr を使った Spark 入門(R)

Connected

演習

ビッグデータ、小さな tibble

前の演習でデータを Spark にコピーしたとき、copy_to() は戻り値を返しました。この戻り値は、データそのものを保持しない特殊な tibble() です。これを理解するには、tidyverse パッケージがデータをどのように格納するかを少し知っておく必要があります。tibble は通常、表示方法が改善された data.frame の一種です。ただし、dplyr では、データベースや、今回のような Spark といったリモートデータソースのデータを格納することもできます。リモートデータセットの場合、tibble オブジェクトはリモートデータへの接続情報を保持するだけです。この点については後ほど詳しく説明しますが、今の時点で重要なのは、大きなデータセットを扱っていても、tibble オブジェクト自体のサイズは小さいということです。

Spark 側では、データは DataFrame と呼ばれる変数に格納されます。これは、R の data.frame 型とほぼ同等のものです(ただし、列の変数型の名前は少し異なります。たとえば、numeric 列は DoubleType 列と呼ばれます)。このコース全体では、data.frame と DataFrame を区別する必要がある場合を除き、データフレームという用語を使用します。また、これらの型はデータベースのテーブルとも類似しているため、このような矩形データをテーブルと呼ぶこともあります。

tbl() に Spark 接続と Spark データフレームの名前を表す文字列を渡して呼び出すと、copy_to() を使ったときと同じ tibble オブジェクトが返されます。

この演習で登場する便利なツールが、pryr パッケージの object_size() 関数です。この関数を使うと、オブジェクトが使用しているメモリ量を確認できます。

指示

100 XP

Spark 接続は spark_conn として作成済みです。1,000 曲分のトラックメタデータが、Spark クラスター内のテーブル "track_metadata" に格納されています。

  • tbl() を使って "track_metadata" テーブルにリンクし、結果を track_metadata_tbl に代入しましょう。
  • track_metadata_tbl に対して dim() を使い、データセットのサイズを確認しましょう。
  • track_metadata_tbl に対して object_size() を使い、tibble のサイズがいかに小さいかを確認しましょう。