Самые популярные
Функция distinct() позволяет получить уникальные значения. Однако нередко важно знать, сколько раз встречается каждое значение. В базовом R для этого используется функция table(), но она не поддерживается в sparklyr, поскольку не соответствует философии tidyverse — хранить всё в тиббл. Вместо неё следует использовать count(). Передайте в неё имена столбцов без кавычек. Например, чтобы подсчитать количество уникальных комбинаций столбцов x, y и z, напишите следующее.
a_tibble %>%
count(x, y, z)
Результат аналогичен
a_tibble %>%
distinct(x, y, z)
… за тем исключением, что появляется дополнительный столбец n с количеством вхождений.
Очень удобный способ применения count() — поиск наиболее часто встречающихся значений. Для этого вызовите count() с аргументом sort = TRUE, который сортирует строки по убыванию значений столбца n, а затем используйте slice_max(), чтобы ограничить результаты нужным числом строк. (slice_max() аналогична функции head() из базового R, но работает с удалёнными наборами данных, например с данными в Spark.) Чтобы получить топ-20 наиболее распространённых комбинаций столбцов x, y и z, используйте следующий код.
a_tibble %>%
count(x, y, z, sort = TRUE) %>%
slice_max(20)
Это упражнение является частью курса
Введение в Spark с sparklyr на R
Инструкции к упражнению
Подключение к Spark уже создано и доступно как spark_conn. Тиббл, связанный с метаданными треков, хранящихся в Spark, предварительно определён как track_metadata_tbl.
- Подсчитайте значения в столбце
artist_nameизtrack_metadata_tbl.- Передайте
sort = TRUE, чтобы отсортировать строки по убыванию популярности.
- Передайте
- Ограничьте результаты топ-20 с помощью
slice_max().
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# track_metadata_tbl has been pre-defined
track_metadata_tbl
track_metadata_tbl %>%
# Count the artist_name values
___ %>%
# Restrict to top 20
___