Sto cercando di costruire un recommender utilizzando Spark ed appena ha esaurito la memoria:Aumenta disposizione PySpark in fase di esecuzione
Exception in thread "dag-scheduler-event-loop" java.lang.OutOfMemoryError: Java heap space
mi piacerebbe per aumentare la memoria disponibile per Spark modificando la proprietà spark.executor.memory
, in PySpark, in fase di esecuzione.
È possibile? Se é cosi, come?
aggiornamento
ispirato il link in @ di zero323 commento, ho cercato di eliminare e ricreare il contesto in 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)
tornato:
ValueError: Cannot run multiple SparkContexts at once;
Questo è strano, dal:
>>> sc
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'sc' is not defined
Cosa intendi con "in fase di esecuzione"? Modificando esistente 'SparkContext'? – zero323
Sì, esattamente. Mi piacerebbe aumentare la quantità di memoria all'interno della sessione PySpark. –
All'interno della sessione si [interrompe il contesto esistente e ne crei uno nuovo] (http://stackoverflow.com/a/31402667/1560062) utilizzando impostazioni specifiche, ma per quanto ne so non è possibile modificarne uno esistente. – zero323