У меня есть приложение PySpark, которое прекрасно работает, когда я пытаюсь установить свойства через командную строку как часть spark-submit, например: -
/usr/bin/spark-submit --master yarn --deploy-mode client --queue default --executor-memory 16G --executor-cores 5 --driver-memory 16G --conf spark.sql.shuffle.partitions=1000 --conf spark.port.maxRetries=64 --conf spark.executor.memoryOverhead=2048 --conf spark.shuffle.service.enabled=true --conf spark.shuffle.registration.timeout=300000 --conf spark.shuffle.registration.maxAttempts=5 --conf spark.sql.broadcastTimeout=3600 --conf spark.driver.maxResultSize=5g /home/hadoop/scripts/spark.py
Однако, если я пытаюсь сохранить параметрыв файле json, как показано ниже
"sparkRuntimeConfig" : [
{
"key" : "spark.executor.memory",
"value" : "16G"
},
{
"key" : "spark.executor.cores",
"value" : "5"
},
{
"key" : "spark.driver.memory",
"value" : "16G"
},
{
"key" : "spark.sql.shuffle.partitions",
"value" : "1000"
},
{
"key" : "spark.port.maxRetries",
"value" : "64"
},
{
"key" : "spark.executor.memoryOverhead",
"value" : "2048"
},
{
"key" : "spark.shuffle.service.enabled",
"value" : "true"
},
{
"key" : "spark.shuffle.registration.timeout",
"value" : "300000"
},
{
"key" : "spark.shuffle.registration.maxAttempts",
"value" : "5"
},
{
"key" : "spark.sql.broadcastTimeout",
"value" : "3600"
},
{
"key" : "spark.driver.maxResultSize",
"value" : "5g"
}
]
и использовать следующий код
spark_conf=SparkConf()
for configuration in sparkRuntimeConfig:
key = configuration['key']
value = configuration['value']
print("Setting run time configuration :- key: {0} , value: {1}".format(key,value))
spark_conf.set(key, value)
spark = SparkSession \
.builder \
.appName("Spark Prod migration") \
.config(conf=spark_conf) \
.master("yarn-client") \
.getOrCreate()
Я получаю следующую ошибку
#
# java.lang.OutOfMemoryError: Java heap space
# -XX:OnOutOfMemoryError="kill -9 %p"
# Executing /bin/sh -c "kill -9 17823"...
Я попытался распечатать свойстваи это показывает мне следующее
('spark.driver.maxResultSize', '5g')
('spark.driver.memory', '16G')
('spark.executor.cores', '5')
('spark.executor.memory', '16G')
('spark.executor.memoryOverhead', '2048')
('spark.shuffle.registration.timeout', '300000')
('spark.shuffle.service.enabled', 'true')
('spark.sql.broadcastTimeout', '3600')
('spark.sql.shuffle.partitions', '1000')
Может кто-нибудь помочь, любая идея, что происходит