【发布时间】:2015-10-06 12:28:36
【问题描述】:
我正在尝试使用 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
【问题讨论】:
-
“运行时”是什么意思?通过修改现有的
SparkContext? -
是的,完全正确。我想增加 PySpark 会话中的内存量。
-
在会话中,您 stop existing context and create new one 使用特定设置,但据我所知,您无法修改现有设置。
-
而不是
del sc你需要停止上下文:sc.stop()
标签: apache-spark pyspark