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

Большие данные, маленький тиббл

В предыдущем упражнении, когда вы скопировали данные в Spark, функция copy_to() вернула значение. Это значение представляет собой особый вид tibble(), который не содержит собственных данных. Чтобы понять, почему так происходит, нужно знать кое-что о том, как пакеты tidyverse хранят данные. Тибблы — это, как правило, вариант data.frame с более удобным методом вывода. Однако dplyr также позволяет им хранить данные из удалённых источников — например, из баз данных или, как в нашем случае, из Spark. Для удалённых наборов данных объект тиббла просто хранит соединение с удалённым источником. Подробнее это будет рассмотрено позже, но главное сейчас: даже если набор данных очень большой, сам объект тиббла занимает мало памяти.

На стороне Spark данные хранятся в переменной типа DataFrame. Это практически прямой аналог типа data.frame в R. (Правда, типы столбцов называются немного иначе — например, столбцы типа numeric называются DoubleType.) На протяжении всего курса будет использоваться термин data frame, если только не потребуется уточнить разницу между data.frame и DataFrame. Поскольку эти типы также аналогичны таблицам баз данных, иногда для описания таких прямоугольных данных будет употребляться термин таблица.

Если вызвать tbl(), передав соединение Spark и строку с именем фрейма данных Spark, функция вернёт тот же объект тиббла, что и copy_to().

Полезный инструмент, который вы увидите в этом упражнении, — функция object_size() из пакета pryr. Она показывает, сколько памяти занимает объект.

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

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

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

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

Соединение с Spark уже создано для вас в переменной spark_conn. Метаданные треков для 1 000 записей хранятся в кластере Spark в таблице "track_metadata".

  • Создайте ссылку на таблицу "track_metadata" с помощью tbl(). Присвойте результат переменной track_metadata_tbl.
  • Проверьте размер набора данных, вызвав dim() на track_metadata_tbl.
  • Проверьте, насколько мал сам тиббл, вызвав object_size() на track_metadata_tbl.

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

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

# Link to the track_metadata table in Spark
track_metadata_tbl <- ___(___, "___")

# See how big the dataset is
___(___)

# See how small the tibble is
___(___)
Редактировать и запускать код