Pregunta

Necesito establecer un par de variables en mi cuaderno Jupyter donde tengo un SparkContext y SQLContext preexistente y lo estoy haciendo mal. Si no incluyo un
sc.stop (), recibo un error de que estoy tratando de instanciar un segundo contexto. Si lo incluyo, recibo un error de que estoy tratando de llamar a los métodos en un contexto detenido.

¿Alguien puede decirme la forma correcta de establecer estas variables?

Aquí está mi código:

from pyspark import SparkConf, SparkContext
from pyspark.sql import HiveContext
from pyspark.sql import SQLContext
conf = (SparkConf()
       .set("spark.yarn.executor.memoryOverhead", "4096")
       .set("spark.kryoserializer.buffer.max.mb", "1024"))

sc.stop()
sc = SparkContext(conf=conf)
sqlContext = SQLContext.getOrCreate(sc)
¿Fue útil?

Solución

Cuando ejecuta chispa en el shell, el objeto SparkConf ya está creado para usted. Como se indica en el documentación Una vez que se pasa un objeto SparkConf a Spark, el usuario ya no puede modificarlo. Así que detenerlo y crear uno nuevo es en realidad la forma correcta de hacerlo.

Sin embargo, esto ahora debería ser posible para Spark 2.0 y superior.

Licenciado bajo: CC-BY-SA con atribución
scroll top