НачатьНачать бесплатно

Левые соединения

Помимо работы с отдельными таблицами, sparklyr позволяет объединять два датафрейма. Подробное описание способов соединения таблиц с помощью синтаксиса dplyr приведено в курсе Joining Data with dplyr. В оставшейся части этой главы вы рассмотрите несколько примеров того, как это делается в Spark.

При левом соединении берутся все значения из первой таблицы и ищутся совпадения во второй. Если совпадение найдено — данные из второй таблицы добавляются; если нет — вместо них подставляются пропущенные значения. Принцип показан на схеме ниже.

A left join, explained using table of colors.

Левое соединение относится к мутирующим соединениям, поскольку оно просто добавляет столбцы к первой таблице. Чтобы выполнить левое соединение в sparklyr, вызовите left_join(), передав два тиббла и символьный вектор столбцов, по которым выполняется соединение.

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

При словесном описании этого соединения названия таблиц меняются местами. Данное соединение можно описать так: «another_tibble присоединяется к a_tibble левым соединением».

В этом упражнении используется ещё один Spark DataFrame, содержащий теги, описывающие каждого исполнителя. Они варьируются от довольно общих, например «pop», до узкоспецифичных жанров — таких как «swiss hip hop» и «mathgrindcore».

Это упражнение является частью курса

Введение в Spark с sparklyr на R

Посмотреть курс

Инструкции к упражнению

Подключение к Spark уже создано и доступно как spark_conn. Тибблы, связанные с метаданными треков и тегами исполнителей, хранящимися в Spark, предварительно определены как track_metadata_tbl и artist_terms_tbl соответственно.

  • С помощью левого соединения объедините теги исполнителей с метаданными треков по столбцу artist_id.
    • Первой указывается таблица, к которой выполняется присоединение, — track_metadata_tbl.
    • Следом идёт присоединяемая таблица — artist_terms_tbl.
    • Сохраните результат в переменную joined.
  • Используйте sdf_dim(), чтобы определить количество строк и столбцов в объединённой таблице.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# track_metadata_tbl and artist_terms_tbl have been pre-defined
track_metadata_tbl
artist_terms_tbl

# Left join artist terms to track metadata by artist_id
joined <- ___(___, ___, by = ___)

# How many rows and columns are in the joined table?
___
Редактировать и запускать код