gpt4 book ai didi

apache-spark - 在运行时增加PySpark可用的内存

转载 作者:行者123 更新时间:2023-12-03 10:07:26 28 4
gpt4 key购买 nike

我正在尝试使用Spark构建推荐器,但内存不足:

Exception in thread "dag-scheduler-event-loop" java.lang.OutOfMemoryError: Java heap space

我想通过在运行时修改PySpark中的 spark.executor.memory属性来增加Spark可用的内存。

那可能吗?如果是这样,怎么办?

更新

受@ zero323注释中的链接启发,我尝试删除并重新创建PySpark中的上下文:
del sc
from pyspark import SparkConf, SparkContext
conf = (SparkConf().setMaster("http://hadoop01.woolford.io:7077").setAppName("recommender").set("spark.executor.memory", "2g"))
sc = SparkContext(conf = conf)

回:
ValueError: Cannot run multiple SparkContexts at once;

这很奇怪,因为:
>>> sc
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'sc' is not defined

最佳答案

我不确定在需要重新启动Shell并使用其他命令打开时为什么选择上面的答案!尽管这种方法行之有效并且很有用,但是有一个实际需要的在线解决方案。这实际上是上面注释中引用的@ zero323,但是该链接指向描述Scala中实现的文章。以下是专门针对PySpark的有效实现。

注意:您必须尚未启动要为其修改设置的SparkContext,否则您将需要关闭它,修改设置并重新打开。

from pyspark import SparkContext
SparkContext.setSystemProperty('spark.executor.memory', '2g')
sc = SparkContext("local", "App Name")

资源:
https://spark.apache.org/docs/0.8.1/python-programming-guide.html

ps。如果您需要关闭SparkContext,请使用:
SparkContext.stop(sc)

并仔细检查已设置的当前设置,可以使用:
sc._conf.getAll()

关于apache-spark - 在运行时增加PySpark可用的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31464727/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com