Я обработал большие данные в искры и сохранил их в HDFS.Есть ли способ улучшить производительность метода saveAsTextFile при искрообразовании
Однако, я чувствую, что метод saveAsTextFile несколько медленнее.
Так что я задаюсь вопросом, есть ли способ улучшить его работу.
Мой исходный код (который работает медленнее, чем ожидалось)
val data = sc.textFile("data", 200);
data.
flatMap(_.split(" ")).
map(word => (word, 1)).
reduceByKey(_ + _).
saveAsTextFile("output")
Когда я добавляю сливаются (1), скорость значительно улучшает
val data = sc.textFile("data", 200);
data.
flatMap(_.split(" ")).
map(word => (word, 1)).
reduceByKey(_ + _).
coalesce(1).
saveAsTextFile("output")
Я бы рекомендовал проверить начальную страницу искры для вашей работы, у нее есть много подробностей о таймингах разных частей задания. Вероятно, вы также захотите проверить количество файлов и размеров, которые вы пишете в hdf. Например, вы можете писать тонны небольших файлов. – jeff
Спасибо вам за ответ! Не могли бы вы ответить на еще один вопрос? Если вы не возражаете. Когда я загружаю текстовый файл с помощью 'sc.textFile()', я устанавливаю для параметра секционирования этого метода значение 200. Это вы подразумеваете под «Возможно, вы пишете тонны небольших файлов»? –
PLS добавить код, который вы пробовали. – mrsrinivas