Я пытаюсь записать искровой фрейм данных в hdfs, используя раздел by.
Но выдает java ошибка пространства кучи.
Ниже приведены конфигурация кластера и моя конфигурация искры.
Конфигурация кластера:
5 nodes
No of cores/node: 32 cores
RAM/Node: 252GB
Конфигурация Spark:
spark.driver.memory = 50g
spark.executor.cores = 10
spark.executor.memory = 40g
df_final создается путем чтения файла avro и выполнения некоторых преобразований (довольно простых преобразований, таких как разделение столбцов и добавление новых столбцов по умолчанию) значения)
Размер исходного файла составляет около 15M
df_final.count() = 361016
Я сталкиваюсь с java Ошибка пространства кучи при записи окончательного DF в hdfs:
df_final.write.partitionBy("col A", "col B", "col C", "col D").mode("append").format("orc").save("output")
Я даже пытался использовать конфигурацию spark Dynami c:
spark.dynamicAllocation.enabled = 'true'
spark.shuffle.service.enabled = 'true'
Все еще с ошибкой java пространства кучи.
Я даже пытался записать df без разделов, но он все равно не работает с ошибкой java пространства кучи или ошибкой G C.
Это именно та стадия, на которой я имею java ошибка кучи:
WARN TaskSetManager: Stage 30 contains a task of very large size (16648KB). The maximum recommended task size is 100 KB
Как я могу точно настроить конфигурацию искры, чтобы избежать этой java проблемы свободного места ??