有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Spark:OutOfMemoryError:Java堆空间

我现在面临一个问题。我正在使用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_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) 个答案