tutorial spark machine learning funciones example context pyspark

pyspark - machine - spark py



No se puede ejecutar pyspark (5)

Los posibles problemas que se enfrentan al ejecutar Spark en Windows son: no proporcionar la ruta correcta o al usar Python 3.x para ejecutar Spark.

Asi que,

  1. Verifique la ruta dada para la chispa, es decir, / usr / local / spark Proper or Not.
  2. Configure la ruta de acceso de Python a Python 2.x (elimine Python 3.x).

Instalé Spark en Windows y no puedo iniciar pyspark . Cuando c:/Spark/bin/pyspark , c:/Spark/bin/pyspark el siguiente error:

Python 3.6.0 | Anaconda personalizado (64 bits) | (predeterminado, 23 de diciembre de 2016, 11:57:41) [MSC v.1900 64 bit (AMD64)] en win32 Escriba "ayuda", "derechos de autor", "créditos" o "licencia" para obtener más información. Seguimiento (última llamada más reciente): archivo "c: / Spark / bin .. / python / pyspark / shell.py", línea 30, en el archivo import pyspark "c: / Spark / python / pyspark__init __. Py", línea 44 , desde pyspark.context importar el archivo SparkContext "c: / Spark / python / pyspark / context.py", línea 36, ​​desde pyspark.java_gateway importar launch_gateway Archivo "c: / Spark / python / pyspark / java_gateway.py", línea 31, desde py4j.java_gateway import java_import, JavaGateway, GatewayClient File "", línea 961, en _find_and_load File "", línea 950, en _find_and_load_unlocked File "", line 646, in _load_unlocked File "", line 616, in_load_ward_ward Archivo "c: / Spark / python / lib / py4j-0.10.4-src.zip / py4j / java_gateway.py", línea 18, en el Archivo "C: / Users / Eigenaar / Anaconda3 / lib / pydoc.py", línea 62, en el archivo de importación pkgutil "C: / Users / Eigenaar / Anaconda3 / lib / pkgutil.py", línea 22, en ModuleInfo = namedtuple (''ModuleInfo'', ''module_finder name ispkg'') Archivo "c: / Spark / python / pyspark / serializers.py ", línea 393, en namedtuple cls = _old_namedtuple (* args, ** kwargs ) TypeError: namedtuple () faltan 3 argumentos obligatorios de palabra clave: ''verbose'', ''rename'', y ''module''

¿Qué estoy haciendo mal aquí?


Quería ampliar la respuesta de Indrajeet, ya que mencionó los números de línea en lugar de la ubicación exacta del código. Por favor vea esto además de su respuesta para más aclaraciones.

cls = _old_namedtuple (* args, ** kwargs)
Es la línea que fue cambiada siendo referida en su respuesta.

def _hijack_namedtuple(): """ Hack namedtuple() to make it picklable """ # hijack only one time if hasattr(collections.namedtuple, "__hijack"): return global _old_namedtuple # or it will put in closure def _copy_func(f): return types.FunctionType(f.__code__, f.__globals__, f.__name__, f.__defaults__, f.__closure__) _old_namedtuple = _copy_func(collections.namedtuple) def namedtuple(*args, **kwargs): # cls = _old_namedtuple(*args, **kwargs) cls = _old_namedtuple(*args, **kwargs, verbose=False, rename=False, module=None) return _hack_namedtuple(cls)

!!! EDITAR 6th Mar 2017 !! Esto solucionó el problema original, pero no creo que esto haga que la chispa 2.1 sea compatible con 3.6 aún, hubo más colisiones más abajo. Como resultado, utilicé Conda para crear un entorno virtual de Python 35 y funcionó a la perfección.

(Windows, asumiendo que tienes env env variables)

>conda create -n py35 python=3.5 >activate py35 >pyspark


Resolví este problema usando un cambio en el script de pythons.

Tengo un lugar debajo del código en la secuencia de comandos de python llamada serializers.py, la ubicación es c:/your-installation-dir/spark-2.0.2-bin-hadoop-2.7/python/pyspark/ y debajo de la línea para ser reemplazada en Line número 381.

cls = _old_namedtuple(*args, **kwargs, verbose=False, rename=False, module=None)

Y luego ejecute pyspark en su línea de comando, esto funcionará ..



Spark 2.1.0 no es compatible con Python 3.6.0. Para resolver esto cambia tu versión de python en un entorno anaconda. Ejecuta el siguiente comando en tu anaconda env

conda create -n py35 python=3.5 anaconda activate py35