Pyspark kann nicht ausgeführt werden

8

Ich habe Spark unter Windows installiert und kann pyspark nicht starten. Wenn ich c:\Spark\bin\pyspark eintippe, erhalte ich den folgenden Fehler:

  

Python 3.6.0 | Anaconda benutzerdefiniert (64-Bit) | (Standard, 23. Dezember 2016, 11:57:41) [MSC v.1900 64 bit (AMD64)] auf win32 Geben Sie "help", "copyright", "credits" oder "license" ein, um weitere Informationen zu erhalten. Traceback (letzter Aufruf zuletzt): Datei "c: \ Spark \ bin .. \ python \ pyspark \ shell.py", Zeile 30, import pypark Datei "c: \ Spark \ python \ pyspark__init __. Py", Zeile 44 , in von pyspark.context import SparkContext Datei "c: \ Spark \ python \ pyspark \ context.py", Zeile 36, aus pyspark.java_gateway import launch_gateway Datei "c: \ Spark \ python \ pyspark \ java_gateway.py", Zeile 31, aus von py4j.java_gateway Import java_import, JavaGateway, GatewayClient Datei "", Zeile 961, in _find_and_load Datei "", Zeile 950, in _find_and_load_unlocked Datei "", Zeile 646, in _load_unlocked Datei "", Zeile 616, in _load_backward_compatible Datei "c: \ Spark \ python \ lib \ py4j-0.10.4-src.zip \ py4j \ java_gateway.py", Zeile 18, in der Datei "C: \ Users \ Eigenaar \ Anaconda3 \ lib \ pydoc.py", Zeile 62, im Import pkgutil Datei "C: \ Benutzer \ Eigenaar \ Anaconda3 \ lib \ pkgutil.py", Zeile 22, in ModuleInfo = namedtuple ('ModuleInfo', 'Modul_Findername ispkg') Datei "c: \ Spark \ python \ pyspark \ serializers.py ", Zeile 393, in namedtuple cls = _old_namedtuple (* args, ** kwargs ) TypeError: namedtuple () fehlt 3 erforderliche Schlüsselwort-Argumente: 'verbose', 'rename' und 'modul'

Was mache ich hier falsch?

    
DerkIII 20.02.2017, 16:45
quelle

5 Antworten

14

Spark 2.1.0 unterstützt Python 3.6.0 nicht. Um dies zu ändern, ändern Sie Ihre Python-Version in Anaconda-Umgebung. Führen Sie folgenden Befehl in Ihrem anaconda env

aus %Vor%     
Satyam 20.03.2017 10:35
quelle
7

Spark & ​​lt; = 2.1.0 ist nicht kompatibel mit Python 3.6. Siehe dieses Problem , das auch behauptet, dass dies mit der kommenden Spark-Version behoben werden wird.

    
karlson 20.02.2017 21:45
quelle
6

Ich habe dieses Problem mit einer Änderung im Python-Skript gelöst.

Ich habe Platz unter Stück Code in Python-Skript mit dem Namen serializers.py, Speicherort ist c:\your-installation-dir\spark-2.0.2-bin-hadoop-2.7\python\pyspark\ und unter Linie zu ersetzen Linie Nummer 381.

%Vor%

Und dann renne pyspark in deine Kommandozeile, das wird funktionieren ..

    
Indrajeet Gour 02.03.2017 19:36
quelle
2

Ich wollte die Antwort von Indrajeet erweitern, da er Zeilennummern anstelle der genauen Position des Codes erwähnte. Bitte beachten Sie dies zusätzlich zu seiner Antwort zur weiteren Klärung.

cls = _old_namedtuple (* args, ** kwargs)
ist die Zeile, die in seiner Antwort geändert wurde

%Vor%

!!! BEARBEITEN 6. März 2017 !! Das hat zwar das ursprüngliche Problem behoben, aber ich glaube nicht, dass dies Funken 2.1 mit 3.6 kompatibel machen wird, es gab noch mehr Kollisionen. Als Ergebnis habe ich mit conda eine virtuelle Python-Umgebung erstellt und es funktionierte wie ein Zauber.

(Windows, vorausgesetzt, Sie haben env-Variablen an Ort und Stelle)

%Vor%     
D.S. 06.03.2017 00:16
quelle
0

Die möglichen Probleme beim Ausführen von Spark unter Windows bestehen darin, dass Sie keinen richtigen Pfad angeben oder Python 3.x zum Ausführen von Spark verwenden.

Also,

  1. Überprüfen Sie Pfad gegeben für Funken, d. h. / usr / local / spark Proper oder nicht.
  2. Setzen Sie den Python-Pfad auf Python 2.x (entfernen Sie Python 3.x).
Marla Akhil Reddy 10.03.2017 12:14
quelle

Tags und Links