Полусоединения
Полусоединения — это противоположность антисоединений: можно сказать, это «анти-антисоединение».
Полусоединение возвращает те строки первой таблицы, для которых удалось найти совпадение во второй таблице. Принцип показан на схеме ниже.

Синтаксис такой же, как и для других типов соединений: просто замените функцию соединения на semi_join().
semi_join(a_tibble, another_tibble, by = c("id_col1", "id_col2"))
Вы могли заметить, что результаты полусоединения в сочетании с результатами антисоединения дают исходную таблицу. Таким образом, независимо от содержимого таблиц и способа их соединения, semi_join(A, B) вместе с anti_join(A, B) вернут A (хотя порядок строк может отличаться).
Это упражнение является частью курса
Введение в Spark с sparklyr на R
Инструкции к упражнению
Подключение к Spark уже создано и доступно как spark_conn. Тибблы, привязанные к метаданным треков и терминам исполнителей, хранящимся в Spark, предопределены как track_metadata_tbl и artist_terms_tbl соответственно.
- Используя полусоединение, объедините термины исполнителей с метаданными треков по столбцу
artist_id. Сохраните результат в переменнуюjoined. - С помощью
sdf_dim()определите количество строк и столбцов в полученной таблице.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# track_metadata_tbl and artist_terms_tbl have been pre-defined
track_metadata_tbl
artist_terms_tbl
# Semi join artist terms to track metadata by artist_id
joined <- ___
# How many rows and columns are in the joined table?
___