Как разделить входные данные и загрузить их в RDD

У меня есть терабайты данных для обработки с использованием Apache Spark. Я использую код sparkContext.binaryFiles(folderpath) загрузить все данные из папки. Я думаю, что он загружает полные данные в RDD и вызывает ошибку OutOfMemory.

Как разделить данные объемом 1 ТБ на 250 ГБ и загрузить их в СДР?

1 ответ

К несчастью, binaryFiles загружает каждый файл как одну запись в RDD. Я предполагаю, что у вас есть все данные в одном файле или только пару из них.

По сути, у вас есть два варианта:

  • Разделите файлы на более мелкие, если это возможно (фактический метод зависит от формата данных)
  • Воплощать в жизнь InputFormat который понимает ваш формат данных (или ищет тот, который делает это уже) и правильно устанавливает количество разделений. Затем вы можете использовать sparkContext.hadoopFile() способ передать ваш формат ввода.
Другие вопросы по тегам