Фильтрация строк
Помимо выбора столбцов, есть ещё один способ извлечь нужные части набора данных — отфильтровать строки. Для этого используется функция 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
___