Я новичок в PySpark.Я пишу свой код с тестовым образцом.Однажды я запустил код для файла большего размера (сжатый 3 ГБ).Мой код только выполняет некоторую фильтрацию и присоединения.Я продолжаю получать ошибки относительно py4J.
Любая помощь будет полезна и ценится.
from pyspark.sql import SparkSession
from pyspark.conf import SparkConf
ss = SparkSession \
.builder \
.appName("Example") \
.getOrCreate()
ss.conf.set("spark.sql.execution.arrow.enabled", 'true')
df = ss.read.csv(directory + '/' + filename, header=True, sep=",")
# Some filtering and groupbys...
df.show()
Возврат
Py4JJavaError: An error occurred while calling o88.showString.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in
stage 3.0 failed 1 times, most recent failure: Lost task 0.0 in stage 3.0 (TID
1, localhost, executor driver): java.lang.OutOfMemoryError: Java heap space
...
Caused by: java.lang.OutOfMemoryError: Java heap space
ОБНОВЛЕНИЕ: Я использовал py4j 10.7 и только что обновил до 10.8
ОБНОВЛЕНИЕ (1): Добавление spark.driver.memory:
ss = SparkSession \
.builder \
.appName("Example") \
.config("spark.driver.memory", "16g")\
.getOrCreate()
Суммарная ошибка возврата:
ERROR:py4j.java_gateway:An error occurred while trying to connect to the Java server (127.0.0.1:38004)
py4j.protocol.Py4JNetworkError: Answer from Java side is empty
"Error while receiving", e, proto.ERROR_ON_RECEIVE)
py4j.protocol.Py4JNetworkError: Error while receiving
Py4JError
Py4JError: An error occurred while calling o94.showString
ОБНОВЛЕНИЕ (2): я попытался это, изменив файл spark-defaults.conf.По-прежнему получаю сообщение об ошибке PySpark: java.lang.OutofMemoryError: Пространство кучи Java
ПОЛУФАБРИКА: Казалось, это общая проблема с памятью.Я запустил 2xlarge экземпляр с 32 г памяти.Программа работает без ошибок.
Зная это, есть ли что-то еще, опция conf, которая может помочь, чтобы мне не пришлось запускать дорогой экземпляр?
Спасибо всем.