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

Connected

演習

セミ結合

セミ結合はアンチ結合の逆、いわば「アンチのアンチ結合」です。

セミ結合は、2つ目のテーブルに一致する行が見つかる場合に、1つ目のテーブルの該当行を返します。その仕組みは以下の図で確認できます。

A semi join, explained using table of colors.

構文は他の結合と同じです。結合関数を semi_join() に置き換えるだけです。

semi_join(a_tibble, another_tibble, by = c("id_col1", "id_col2"))

セミ結合の結果とアンチ結合の結果を合わせると、元のテーブルが得られます。つまり、テーブルの内容や結合方法に関わらず、semi_join(A, B) と anti_join(A, B) を合わせると A が返されます(行の順序は異なる場合があります)。

指示

100 XP

Spark への接続は spark_conn として作成済みです。Spark に格納されたトラックのメタデータとアーティストタームに接続された Tibble は、それぞれ track_metadata_tbl と artist_terms_tbl として定義済みです。

  • artist_id 列を使って、アーティストタームをトラックのメタデータにセミ結合で結合しましょう。結果を joined に格納してください。
  • sdf_dim() を使って、結合後のテーブルの行数と列数を確認しましょう。