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

Уменьшение объёма данных с помощью выборки

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