Уменьшение объёма данных с помощью выборки
При работе с большим набором данных вам не всегда нужны все данные сразу. Особенно на начальном этапе проекта, когда вы активно экспериментируете, итерировать гораздо быстрее на меньшем подмножестве данных. Функция sdf_sample() предоставляет удобный способ сделать это: она принимает тиббл и долю строк, которую нужно вернуть. В данном случае выборка выполняется без возвращения элементов. Чтобы получить случайную выборку в одну десятую набора данных, используйте следующий код.
a_tibble %>%
sdf_sample(fraction = 0.1, replacement = FALSE)
Поскольку результаты выборки случайны, а уменьшенный набор данных наверняка потребуется использовать повторно, принято применять compute() для сохранения результатов в виде отдельного Spark DataFrame.
a_tibble %>%
sdf_sample(<some args>) %>%
compute("sample_dataset")
Чтобы результаты можно было воспроизвести, задайте начальное значение генератора случайных чисел с помощью аргумента seed. Это гарантирует, что при каждом запуске кода вы будете получать одинаковый случайный набор данных. Конкретное число не имеет значения — просто выберите любое подходящее положительное целое число.
Это упражнение является частью курса
Введение в Spark с sparklyr на R
Инструкции к упражнению
Подключение к Spark уже создано и доступно как spark_conn. Тиббл, привязанный к метаданным треков в Spark, предварительно определён как track_metadata_tbl.
- Используйте
sdf_sample(), чтобы получить 1% метаданных треков без возвращения элементов.- Передайте значение
20000229в аргументseed, чтобы задать начальное значение генератора случайных чисел.
- Передайте значение
- Вычислите результат и сохраните его в таблице с именем
"sample_track_metadata".
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# track_metadata_tbl has been pre-defined
track_metadata_tbl
track_metadata_tbl %>%
# Sample the data without replacement
___ %>%
# Compute the result
___