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

Фильтрация строк

Помимо выбора столбцов, есть ещё один способ извлечь нужные части набора данных — отфильтровать строки. Для этого используется функция filter(). Ей передаются тиббл и одно или несколько логических условий. Например, чтобы получить только те строки, где значения столбца x больше нуля и значения y равны значениям z, используйте следующий код.

a_tibble %>%
  filter(x > 0, y == z)

Прежде чем приступить к упражнению, обратите внимание на два важных момента. Во-первых, не перепутайте функцию filter() из пакета dplyr с одноимённой функцией filter() из пакета stats. Во-вторых, sparklyr преобразует ваш код на dplyr в SQL-запросы перед отправкой в Spark. Это означает, что на данный момент поддерживается лишь ограниченный набор операций фильтрации. Например, фильтрация строковых значений с помощью регулярных выражений пока не работает:

a_tibble %>%
  filter(grepl("a regex", x))

Список доступных возможностей описан на странице справки translate_sql(). Вы можете использовать операторы сравнения, такие как >, != и %in%; арифметические операторы, такие как +, ^ и %%; логические операторы, такие как &, | и !. Также поддерживается ряд математических функций: log(), abs(), round() и sin().

Как и прежде, индексирование с помощью квадратных скобок на данный момент не поддерживается.

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

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

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

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

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

  • Как и в предыдущем упражнении, выберите столбцы artist_name, release, title и year с помощью select().
  • Передайте результат через пайп в filter(), чтобы получить треки 1960-х годов.

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

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

# track_metadata_tbl has been pre-defined
glimpse(track_metadata_tbl)

# Manipulate the track metadata
track_metadata_tbl %>%
  # Select columns
  ___ %>%
  # Filter rows
  ___
Редактировать и запускать код