我目前正面临一个问题。我正在使用PySpark进行开发,我正在尝试将JSON文件加载到数据帧(~2Go)中。问题是我一直收到这个错误:
org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 0.0 failed 1 times, most recent failure: Lost task 0.0 in stage 0.0 (TID 0, localhost, executor driver): java.lang.OutOfMemoryError: Java heap space
我已经尝试了几件事:
-Xmx
设置为3g
,但没有效果设置不同的Spark选项(在$SPARK_HOME/conf/spark-defaults.conf
中)无效:
spark.executor.memory 3g
spark.driver.memory 3g
spark.python.worker.memory 3g
spark.memory.fraction 0.9
spark.driver.maxResultSize 3g
spark.memory.storageFraction 0.9
这是代码:
from pyspark.sql import SparkSession
def main(sc):
df = spark.read.json("/path/to/file.json")
if __name__ == "__main__":
spark = SparkSession \
.builder \
.appName("Python Spark SQL basic example") \
.getOrCreate()
main(spark)
我用以下方式调用该程序:
spark-submit program.py
毋庸置疑,我已经检查了服务器上可用的内存总量:8G。
经过进一步研究,我无法找到另一种解决方案。有没有人有想法?