開始使用免費開始

Anti join

在上一題中,合併後的資料集比你預期的小,因為不是每位藝人都有對應的標籤。Anti join 對於排查其他 join 的問題特別好用。

Anti join 會回傳第一個資料表中,在第二個資料表找不到對應鍵值的那些列。原理如下面的圖所示。

An anti join, explained using table of colors.

Anti join 屬於一種「過濾式 join」,因為它會回傳第一個資料表的內容,但根據是否符合對應條件來過濾其列。

Anti join 的語法和 left join 幾乎相同:只要把 left_join() 換成 anti_join() 即可。

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

本練習屬於課程

使用 R 的 sparklyr:Spark 入門

檢視課程

練習說明

已為你建立 spark_conn Spark 連線。儲存在 Spark 中、與曲目中繼資料與藝人標籤對應的 tibbles 已分別預先定義為 track_metadata_tblartist_terms_tbl

  • 使用 anti join 依 artist_id 欄位將藝人標籤與曲目中繼資料進行連結。將結果指定給 joined
  • 使用 sdf_dim() 來確認連結後資料表的列數與欄數。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# track_metadata_tbl and artist_terms_tbl have been pre-defined
track_metadata_tbl
artist_terms_tbl

# Anti join artist terms to track metadata by artist_id
joined <- ___

# How many rows and columns are in the joined table?
___
編輯並執行程式碼