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

Копирование данных в Spark

Прежде чем приступить к реальной работе в Spark, необходимо загрузить в него данные. В sparklyr есть функции, например spark_read_csv(), которые позволяют считывать CSV-файлы непосредственно в Spark. В более общем случае удобно копировать данные из R в Spark — для этого используется функция copy_to() из пакета dplyr. Имейте в виду: копирование данных — процесс принципиально медленный. Многие стратегии оптимизации производительности при работе с большими наборами данных направлены именно на то, чтобы по возможности избегать копирования данных из одного места в другое.

copy_to() принимает два аргумента: соединение со Spark (dest) и фрейм данных (df), который нужно скопировать в Spark.

После копирования данных вы, вероятно, захотите убедиться, что всё прошло успешно. Список всех фреймов данных, хранящихся в Spark, можно получить с помощью src_tbls() — эта функция принимает единственный аргумент: соединение со Spark (x).

На протяжении всего курса вы будете работать с метаданными треков из Million Song Dataset. Хотя Spark без труда справляется с миллионами строк, для простоты и удобства мы будем использовать подмножество из тысячи треков. Уточним терминологию: трек — это одна строка в наборе данных. В нашем наборе из тысячи треков это то же самое, что и песня (хотя в полном наборе из миллиона строк встречались дублирующиеся песни).

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

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

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

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

В вашем рабочем пространстве заранее определён фрейм данных track_metadata, содержащий название песни, имя исполнителя и другие метаданные для 1 000 треков.

  • С помощью str() изучите структуру набора данных track_metadata.
  • Подключитесь к локальному кластеру Spark и сохраните соединение в переменной spark_conn.
  • Скопируйте track_metadata в кластер Spark с помощью copy_to().
  • Проверьте, какие фреймы данных доступны в Spark, используя src_tbls().
  • Отключитесь от Spark.

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

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

# Load dplyr
___

# Explore track_metadata structure
___

# Connect to your Spark cluster
spark_conn <- spark_connect("___")

# Copy track_metadata to Spark
track_metadata_tbl <- ___(___, ___, overwrite = TRUE)

# List the data frames available in Spark
___(___)

# Disconnect from Spark
spark_disconnect(___)
Редактировать и запускать код