La siguiente SOF pregunta Cómo ejecutar una secuencia de comandos en Pyspark y caer en IPython shell cuando se hace? dice cómo iniciar una pyspark guión:

 %run -d myscript.py

Pero ¿cómo podemos acceder a la existin chispa contexto?

La creación de un nuevo uno no funciona:

 ---->  sc = SparkContext("local", 1)

 ValueError: Cannot run multiple SparkContexts at once; existing 
 SparkContext(app=PySparkShell, master=local) created by <module> at 
 /Library/Python/2.7/site-packages/IPython/utils/py3compat.py:204

Pero tratando de usar una existente .. así lo existente?

In [50]: for s in filter(lambda x: 'SparkContext' in repr(x[1]) and len(repr(x[1])) < 150, locals().iteritems()):
    print s
('SparkContext', <class 'pyspark.context.SparkContext'>)

decir, no hay ninguna variable para un SparkContext instancia

  • ¿Qué sucede cuando esto primero: from pyspark import SparkContext?
  • Con Chispa 2.0.0 en adelante, el sparkSession que puede crear sin un enfrentamiento tiene un sparkContext de propiedad para acceder al contexto original.
InformationsquelleAutor javadba | 2015-03-11

3 Comentarios

  1. 38

    de pyspark.context de importación SparkContext

    y, a continuación, llamar a un método estático en SparkContext como:

    sc = SparkContext.getOrCreate()
    • Agregar un poco de explicación con la respuesta de cómo responder a ayudar a OP en la fijación de la edición actual
    • sc es la existente SparkContext OP está buscando. Antes no había manera de obtener una existente SparkContext, pero el método estático getOrCreate() se añadió a obtener y contexto existente o crear uno nuevo, si no existe uno.
    • A mí me funciona! 3x! pero puede usted explicar por favor?
  2. 2

    Independiente de secuencia de comandos de python para el conteo de palabras : escribir un reutilizables chispa de contexto mediante contextmanager

    """SimpleApp.py"""
    from contextlib import contextmanager
    from pyspark import SparkContext
    from pyspark import SparkConf
    
    
    SPARK_MASTER='local'
    SPARK_APP_NAME='Word Count'
    SPARK_EXECUTOR_MEMORY='200m'
    
    @contextmanager
    def spark_manager():
        conf = SparkConf().setMaster(SPARK_MASTER) \
                          .setAppName(SPARK_APP_NAME) \
                          .set("spark.executor.memory", SPARK_EXECUTOR_MEMORY)
        spark_context = SparkContext(conf=conf)
    
        try:
            yield spark_context
        finally:
            spark_context.stop()
    
    with spark_manager() as context:
        File = "/home/ramisetty/sparkex/README.md"  # Should be some file on your system
        textFileRDD = context.textFile(File)
        wordCounts = textFileRDD.flatMap(lambda line: line.split()).map(lambda word: (word, 1)).reduceByKey(lambda a, b: a+b)
        wordCounts.saveAsTextFile("output")
    
    print "WordCount - Done"

    de lanzamiento:

    /bin/spark-submit SimpleApp.py
  3. 0

    Al tipo de pyspark en la terminal, python crea automáticamente la chispa contexto sc.

    • Ese es el bin/pyspark programa no independiente pyspark script.
    • Y sc variable no se crea automáticamente, SparkContext instancia es creada automáticamente.

Dejar respuesta

Please enter your comment!
Please enter your name here