Я пытаюсь записать результат нескольких операций в кластер AWS Aurora PostgreSQL. Все вычисления выполняются правильно, но, когда я пытаюсь записать результат в базу данных, я получаю следующую ошибку:
py4j.protocol.Py4JJavaError: An error occurred while calling o12179.jdbc.
: java.lang.StackOverflowError
at org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$2.apply(TreeNode.scala:256)
at org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$2.apply(TreeNode.scala:256)
at org.apache.spark.sql.catalyst.trees.CurrentOrigin$.withOrigin(TreeNode.scala:70)
at org.apache.spark.sql.catalyst.trees.TreeNode.transformDown(TreeNode.scala:255)
Я уже пытался увеличить размер кластера (15 машин r4.2xlarge), изменить числоразделы для данных на 120 разделов, измените память исполнителя и драйвера на 4Gb каждый, и я столкнулся с теми же результатами.
Текущая конфигурация SparkSession следующая:
spark = pyspark.sql.SparkSession\
.builder\
.appName("profile")\
.config("spark.sql.shuffle.partitions", 120)\
.config("spark.executor.memory", "4g").config("spark.driver.memory", "4g")\
.getOrCreate()
Надеюсьне знаю, если это проблема конфигурации Spark или это проблема программирования.