【问题标题】:pyspark :Java heap space error throwen after changing StringIndexer params "handleInvalid" to 'skip'pyspark:将 StringIndexer 参数“handleInvalid”更改为“skip”后引发 Java 堆空间错误
【发布时间】:2020-04-20 16:24:17
【问题描述】:

我正在开发一个机器学习应用程序(使用 pycharm),一切正常。

但是当我决定更改“HandlInvalid”参数时,spark 会抛出这个 java 堆错误。

Exception in thread "dispatcher-event-loop-1" java.lang.OutOfMemoryError: Java heap space
.....
.....
ERROR Utils: Uncaught exception in thread driver-heartbeater
java.lang.OutOfMemoryError: Java heap space
.....
.....
py4j.protocol.Py4JJavaError: An error occurred while calling o6473.fit.
: java.lang.OutOfMemoryError: Java heap space

当我尝试更改 driver.memory 时,我收到此错误:

Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx5g
The specified size exceeds the maximum representable size.

这是我的火花会议:

from pyspark.sql import SparkSession
spark = SparkSession.builder.appName('Ope inp').master('local')\
    .config("spark.driver.memory", "5g")\
    .enableHiveSupport().getOrCreate()

引用自 apache.spark.config :

注意:在客户端模式下,此配置不能通过 SparkConf 直接在你的应用程序中,因为驱动程序 JVM 有 那时已经开始了。相反,请通过 --driver-memory 命令行选项或在您的默认属性文件中

如何在文件属性中设置 driver.memroyexecutor.memory 配置,这样我每次调试应用程序时都不必设置它们

【问题讨论】:

    标签: pyspark heap-memory


    【解决方案1】:

    我想通了,

    由于 64 位 JVM,问题得以解决。首先,我运行的是 32 位 JVM,它不允许限制堆大小的特定参数。

    找出你有哪个JVM。尝试第二个答案 [https://stackoverflow.com/a/2062263/7096004][1]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-25
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 2011-10-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多