Удалите данные в файлах HDFS и настройте Spark - PullRequest
0 голосов
/ 12 октября 2019

У меня есть скрипт, который удаляет строки в текстовых файлах, хранящихся в HDFS . Данные разделены по дням с количеством данных менее 10MB на раздел.

код считывает все данные в кадр данных (DF1), отслеживая данные или данные src, поэтому я могу переписатьданные в конце. Затем на основе другого отдельного столбца данных (DF2) удаляет все строки, содержащие любую строку в DF2.

Объем данных невелик, хотя выполнение кода занимает слишком много времени.

Как настроить Spark для работы? Еще исполнители, ядра, память? Или, может быть, я мог бы обработать Dataframe по-другому?

Ответы [ 2 ]

1 голос
/ 14 октября 2019

Трансляция DF2 и запуск того же процесса. Это должно улучшить производительность.

Для дальнейшего сокращения времени выполнения вы можете увеличить количество исполнителей (--num-executor). Поскольку каждый раздел занимает всего около 10 МБ, я бы предложил вам использовать минимальный ресурс для каждого исполнителя (--executor-memory 1G --executor-cores 1).

Это несколько вариантов, которые можно использоватьсразу, чтобы сократить время выполнения. Более подробно проанализировав данные и использованную сериализацию, вы можете попытаться оптимизировать их.

0 голосов
/ 12 октября 2019

Прежде всего, для данных такого размера можно просто не использовать Spark? Вместо этого читать в сырых ресурсах и запускать их на виртуальной машине / контейнере?

Нам нужно больше узнать о конфигурации, которую вы сейчас используете, чтобы дать совет: сколько ядер вы используете в настоящее время? Это близко к максимальному использованию?

Кроме того, примеры кода очень помогают в диагностике проблемы.

...