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

Connected

演習

最も多いアーティスト

distinct() 関数を使うと、ユニークな値を確認できます。さらに、各値が何件あるかを知ることも役立ちます。base R にはそのための table() 関数がありますが、tidyverse のすべてをティブルで管理するという設計思想に沿わないため、sparklyr では使用できません。代わりに count() を使いましょう。列名をクォートなしで渡すだけです。たとえば、列 x、y、z の組み合わせごとの件数を求めるには、次のように書きます。

a_tibble %>%
  count(x, y, z)

この結果は以下と同じですが、

a_tibble %>%
  distinct(x, y, z)

…件数を含む列 n が追加されている点が異なります。

count() の便利な使い方として、最も出現頻度の高い値を取得する方法があります。引数 sort = TRUE を指定して count() を呼び出すと、n 列の降順で行が並び替えられます。その後、slice_max() で上位何件かに絞り込めます。(slice_max() は base R の head() に似ていますが、Spark 上のリモートデータセットでも動作します。)たとえば、列 x、y、z の組み合わせで最も多い上位 20 件を取得するには、次のようにします。

a_tibble %>%
  count(x, y, z, sort = TRUE) %>%
  slice_max(20)

指示

100 XP

Spark への接続は spark_conn として作成済みです。また、Spark に格納されたトラックのメタデータに紐付けられたティブルは track_metadata_tbl として定義されています。

  • track_metadata_tbl の artist_name 列の値を集計しましょう。
    • sort = TRUE を渡して、行を人気の高い順に並べましょう。
  • slice_max() を使って、結果を上位 20 件に絞り込みましょう。