Próbuję zbudować dzia rekomendacji użyciu Spark i po prostu zabrakło pamięci:Zwiększenie dostępnej pamięci do PySpark przy starcie
Exception in thread "dag-scheduler-event-loop" java.lang.OutOfMemoryError: Java heap space
Chciałbym zwiększyć ilość pamięci dostępnej dla Spark modyfikując właściwość spark.executor.memory
, w PySpark, w czasie wykonywania.
Czy to możliwe? Jeśli tak to jak?
aktualizacja
zainspirowany link użytkownika @ zero323 komentarzu starałem się usunąć i odtworzyć kontekst 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)
powrócił:
ValueError: Cannot run multiple SparkContexts at once;
to dziwne, od:
>>> sc
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'sc' is not defined
Co masz na myśli mówiąc "w czasie wykonywania"? Modyfikując istniejący "SparkContext"? – zero323
Tak, dokładnie. Chciałbym zwiększyć ilość pamięci w sesji PySpark. –
W ramach sesji można [zatrzymać istniejący kontekst i utworzyć nowy] (http://stackoverflow.com/a/31402667/1560062) używając określonych ustawień, ale o ile wiem, nie można zmodyfikować istniejącego. – zero323