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

Connected

演習

サンプリングによるデータの縮小

大きなデータセットを扱う場合、常にすべてのデータを使う必要はありません。特にプロジェクトの初期段階でさまざまな試みを行っているときは、データの一部だけを使うことで、より素早く繰り返し作業を進めることができます。sdf_sample() はこれを簡単に実現する関数です。tibble と返す行の割合を引数として受け取ります。今回は非復元抽出でサンプリングします。データセットの10分の1をランダムにサンプリングするには、次のコードを使います。

a_tibble %>%
  sdf_sample(fraction = 0.1, replacement = FALSE)

サンプリングの結果はランダムであり、縮小したデータセットを再利用したい場合も多いため、compute() を使って結果を別の Spark データフレームとして保存するのが一般的です。

a_tibble %>%
  sdf_sample(<some args>) %>%
  compute("sample_dataset")

結果を再現可能にするために、seed 引数で乱数のシードを設定することもできます。シードを設定すると、コードを実行するたびに同じランダムなデータセットが得られます。シードに使う数値は何でも構いません。好きな正の整数を選んでください。

指示

100 XP

Spark への接続は spark_conn として作成済みです。Spark に保存されたトラックのメタデータに紐付けられた tibble は track_metadata_tbl として定義されています。

  • sdf_sample() を使って、トラックのメタデータから非復元抽出で1%をサンプリングします。
    • seed 引数に 20000229 を渡して、乱数シードを設定します。
  • 結果を計算し、"sample_track_metadata" という名前のテーブルに保存します。