Spark:OutOfMemoryError:Java堆空间

时间:2017-04-25 13:06:21

标签: java apache-spark memory pyspark heap

我目前正面临一个问题。我正在使用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

我已经尝试了几件事:

  • 在JVM中将-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。

经过进一步研究,我无法找到另一种解决方案。有没有人有想法?

0 个答案:

没有答案