Я пытаюсь сохранить фрейм данных в таблицу Hive.Но этот процесс занимает слишком много времени, и, в конце концов, он терпит неудачу, теряя ранее много задач из-за проблем с памятью.
DF разделен на несколько столбцов, чтобы попытаться написать одновременно больше исполнителей, а такжекэшируется в памяти.Он не особо большой и не усложняет операции, совершаемые для его получения.
· Код: Код
· план выполнения :
· Ошибки : Отслеживание исполнителя
# java.lang.OutOfMemoryError: GC overhead limit exceeded
# -XX:OnOutOfMemoryError="kill %p"
# Executing /bin/sh -c "kill 24077"...
· Точка :
Почему у меня так много неудачных задач при выполнении программы с этими ресурсами:
--master yarn --deploy-mode client --driver-memory 20G --executor-memory 20G --num-executors 50 --executor-cores 10 --conf spark.kryoserializer.buffer.max=2000m
Также, когда я запускаю программу через spark2-shell, она способна это сделать.Похоже, что когда я запускаю его с помощью spark-submit, он застревает при записи только с одним исполнителем, но, как я уже сказал, у меня много разделов, так зачем это делать?Что я делаю не так?
Любая помощь будет более чем признательна, заранее спасибо!;)