Копирование данных в 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(___)