Wie verbinde ich PyCharm mit PySpark?


80

Ich bin neu mit Apache Spark und habe anscheinend Apache-Spark mit Homebrew in meinem MacBook installiert:

Last login: Fri Jan  8 12:52:04 on console
user@MacBook-Pro-de-User-2:~$ pyspark
Python 2.7.10 (default, Jul 13 2015, 12:05:58)
[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
16/01/08 14:46:44 INFO SparkContext: Running Spark version 1.5.1
16/01/08 14:46:46 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
16/01/08 14:46:47 INFO SecurityManager: Changing view acls to: user
16/01/08 14:46:47 INFO SecurityManager: Changing modify acls to: user
16/01/08 14:46:47 INFO SecurityManager: SecurityManager: authentication disabled; ui acls disabled; users with view permissions: Set(user); users with modify permissions: Set(user)
16/01/08 14:46:50 INFO Slf4jLogger: Slf4jLogger started
16/01/08 14:46:50 INFO Remoting: Starting remoting
16/01/08 14:46:51 INFO Remoting: Remoting started; listening on addresses :[akka.tcp://sparkDriver@192.168.1.64:50199]
16/01/08 14:46:51 INFO Utils: Successfully started service 'sparkDriver' on port 50199.
16/01/08 14:46:51 INFO SparkEnv: Registering MapOutputTracker
16/01/08 14:46:51 INFO SparkEnv: Registering BlockManagerMaster
16/01/08 14:46:51 INFO DiskBlockManager: Created local directory at /private/var/folders/5x/k7n54drn1csc7w0j7vchjnmc0000gn/T/blockmgr-769e6f91-f0e7-49f9-b45d-1b6382637c95
16/01/08 14:46:51 INFO MemoryStore: MemoryStore started with capacity 530.0 MB
16/01/08 14:46:52 INFO HttpFileServer: HTTP File server directory is /private/var/folders/5x/k7n54drn1csc7w0j7vchjnmc0000gn/T/spark-8e4749ea-9ae7-4137-a0e1-52e410a8e4c5/httpd-1adcd424-c8e9-4e54-a45a-a735ade00393
16/01/08 14:46:52 INFO HttpServer: Starting HTTP Server
16/01/08 14:46:52 INFO Utils: Successfully started service 'HTTP file server' on port 50200.
16/01/08 14:46:52 INFO SparkEnv: Registering OutputCommitCoordinator
16/01/08 14:46:52 INFO Utils: Successfully started service 'SparkUI' on port 4040.
16/01/08 14:46:52 INFO SparkUI: Started SparkUI at http://192.168.1.64:4040
16/01/08 14:46:53 WARN MetricsSystem: Using default name DAGScheduler for source because spark.app.id is not set.
16/01/08 14:46:53 INFO Executor: Starting executor ID driver on host localhost
16/01/08 14:46:53 INFO Utils: Successfully started service 'org.apache.spark.network.netty.NettyBlockTransferService' on port 50201.
16/01/08 14:46:53 INFO NettyBlockTransferService: Server created on 50201
16/01/08 14:46:53 INFO BlockManagerMaster: Trying to register BlockManager
16/01/08 14:46:53 INFO BlockManagerMasterEndpoint: Registering block manager localhost:50201 with 530.0 MB RAM, BlockManagerId(driver, localhost, 50201)
16/01/08 14:46:53 INFO BlockManagerMaster: Registered BlockManager
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /__ / .__/\_,_/_/ /_/\_\   version 1.5.1
      /_/

Using Python version 2.7.10 (default, Jul 13 2015 12:05:58)
SparkContext available as sc, HiveContext available as sqlContext.
>>>

Ich würde gerne anfangen zu spielen, um mehr über MLlib zu erfahren. Ich benutze Pycharm jedoch, um Skripte in Python zu schreiben. Das Problem ist: Wenn ich zu Pycharm gehe und versuche, pyspark aufzurufen, kann Pycharm das Modul nicht finden. Ich habe versucht, den Pfad zu Pycharm wie folgt hinzuzufügen:

Ich kann Pycharm nicht mit Funken verbinden

Dann habe ich in einem Blog Folgendes versucht:

import os
import sys

# Path for spark source folder
os.environ['SPARK_HOME']="/Users/user/Apps/spark-1.5.2-bin-hadoop2.4"

# Append pyspark  to Python Path
sys.path.append("/Users/user/Apps/spark-1.5.2-bin-hadoop2.4/python/pyspark")

try:
    from pyspark import SparkContext
    from pyspark import SparkConf
    print ("Successfully imported Spark Modules")

except ImportError as e:
    print ("Can not import Spark Modules", e)
    sys.exit(1)

Und kann immer noch nicht anfangen, PySpark mit Pycharm zu verwenden, eine Idee, wie man PyCharm mit Apache-Pyspark "verknüpft"?.

Aktualisieren:

Dann suche ich nach Apache-Spark- und Python-Pfad, um die Umgebungsvariablen von Pycharm festzulegen:

Apache-Funken-Pfad:

user@MacBook-Pro-User-2:~$ brew info apache-spark
apache-spark: stable 1.6.0, HEAD
Engine for large-scale data processing
https://spark.apache.org/
/usr/local/Cellar/apache-spark/1.5.1 (649 files, 302.9M) *
  Poured from bottle
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/apache-spark.rb

Python-Pfad:

user@MacBook-Pro-User-2:~$ brew info python
python: stable 2.7.11 (bottled), HEAD
Interpreted, interactive, object-oriented programming language
https://www.python.org
/usr/local/Cellar/python/2.7.10_2 (4,965 files, 66.9M) *

Dann habe ich mit den obigen Informationen versucht, die Umgebungsvariablen wie folgt festzulegen:

Konfiguration 1

Irgendeine Idee, wie man Pycharm richtig mit pyspark verbindet?

Wenn ich dann ein Python-Skript mit der obigen Konfiguration ausführe, habe ich diese Ausnahme:

/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/bin/python2.7 /Users/user/PycharmProjects/spark_examples/test_1.py
Traceback (most recent call last):
  File "/Users/user/PycharmProjects/spark_examples/test_1.py", line 1, in <module>
    from pyspark import SparkContext
ImportError: No module named pyspark

AKTUALISIEREN: Dann habe ich diese von @ zero323 vorgeschlagenen Konfigurationen ausprobiert

Konfiguration 1:

/usr/local/Cellar/apache-spark/1.5.1/ 

conf 1

aus:

 user@MacBook-Pro-de-User-2:/usr/local/Cellar/apache-spark/1.5.1$ ls
CHANGES.txt           NOTICE                libexec/
INSTALL_RECEIPT.json  README.md
LICENSE               bin/

Konfiguration 2:

/usr/local/Cellar/apache-spark/1.5.1/libexec 

Geben Sie hier die Bildbeschreibung ein

aus:

user@MacBook-Pro-de-User-2:/usr/local/Cellar/apache-spark/1.5.1/libexec$ ls
R/        bin/      data/     examples/ python/
RELEASE   conf/     ec2/      lib/      sbin/

Antworten:


110

Mit PySpark-Paket (Spark 2.2.0 und höher)

Mit SPARK-1267 Wesen verschmolzen sollten Sie in der Lage sein , den Prozess zu vereinfachen , indem pipSpark in der Umgebung installieren Sie PyCharm Entwicklung verwenden.

  1. Gehen Sie zu Datei -> Einstellungen -> Projektinterpreter
  2. Klicken Sie auf die Schaltfläche Installieren und suchen Sie nach PySpark

    Geben Sie hier die Bildbeschreibung ein

  3. Klicken Sie auf die Schaltfläche Paket installieren.

Manuell mit vom Benutzer bereitgestellter Spark-Installation

Run-Konfiguration erstellen :

  1. Gehen Sie zu Ausführen -> Konfigurationen bearbeiten
  2. Neue Python-Konfiguration hinzufügen
  3. Set Script Pfad so verweist er auf das Skript Sie ausführen möchten
  4. Bearbeiten Sie das Feld Umgebungsvariablen so, dass es mindestens Folgendes enthält:

    • SPARK_HOME- Es sollte auf das Verzeichnis mit der Spark-Installation verweisen. Es sollte enthält Verzeichnisse wie bin(mit spark-submit, spark-shellusw.) und conf(mit spark-defaults.conf, spark-env.shetc.)
    • PYTHONPATH- Es sollte enthalten $SPARK_HOME/pythonund optional, $SPARK_HOME/python/lib/py4j-some-version.src.zipfalls nicht anders verfügbar. some-versionsollte mit der Py4J-Version übereinstimmen, die von einer bestimmten Spark-Installation verwendet wird (0.8.2.1 - 1.5, 0.9 - 1.6, 0.10.3 - 2.0, 0.10.4 - 2.1, 0.10.4 - 2.2, 0.10.6 - 2.3, 0.10.7 - 2.4 )

      Geben Sie hier die Bildbeschreibung ein

  5. Übernehmen Sie die Einstellungen

Fügen Sie dem Interpreterpfad eine PySpark-Bibliothek hinzu (erforderlich für die Code-Vervollständigung) :

  1. Gehen Sie zu Datei -> Einstellungen -> Projektinterpreter
  2. Öffnen Sie die Einstellungen für einen Interpreter, den Sie mit Spark verwenden möchten
  3. Bearbeiten Sie die Interpreterpfade so, dass sie den Pfad zu enthalten $SPARK_HOME/python (ein Py4J, falls erforderlich).
  4. Speichern Sie die Einstellungen

Optional

  1. Installieren oder fügen Sie Anmerkungen zum Pfadtyp hinzu, die mit der installierten Spark-Version übereinstimmen, um eine bessere Vervollständigung und statische Fehlererkennung zu erzielen (Haftungsausschluss - Ich bin Autor des Projekts).

Schließlich

Verwenden Sie die neu erstellte Konfiguration, um Ihr Skript auszuführen.


9
Übrigens, so bearbeiten Sie die Interpreterpfade, zumindest in PyCharm 2016: jetbrains.com/help/pycharm/2016.1/… Wählen Sie die Schaltfläche "Pfade für den ausgewählten Interpreter
anzeigen

3
Auf der Mac-Version von PyCharm (v-2017.2) befindet sich der Projektinterpreter unter Einstellungen ... anstelle von Datei / Einstellungen
Zufällige Sicherheit

1
Wie fügen Sie mit Option 1 Spark-JARs / -Pakete hinzu? zB brauche ich com.databricks: spark-redshift_2.10: 3.0.0-recovery1
lfk

@lfk Entweder über Konfigurationsdateien ( spark-defaults.conf) oder über Submit Args - genau wie bei Jupyter Notebook . Übermittlungsargumente können in den Umgebungsvariablen von PyCharm anstelle von Code definiert werden, wenn Sie diese Option bevorzugen.
10465355 sagt Reinstate Monica

38

Hier ist, wie ich das auf Mac OSX gelöst habe.

  1. brew install apache-spark
  2. Fügen Sie dies zu ~ / .bash_profile hinzu

    export SPARK_VERSION=`ls /usr/local/Cellar/apache-spark/ | sort | tail -1`
    export SPARK_HOME="/usr/local/Cellar/apache-spark/$SPARK_VERSION/libexec"
    export PYTHONPATH=$SPARK_HOME/python/:$PYTHONPATH
    export PYTHONPATH=$SPARK_HOME/python/lib/py4j-0.9-src.zip:$PYTHONPATH
    
  3. Fügen Sie pyspark und py4j zum Inhaltsstamm hinzu (verwenden Sie die richtige Spark-Version):

    /usr/local/Cellar/apache-spark/1.6.1/libexec/python/lib/py4j-0.9-src.zip
    /usr/local/Cellar/apache-spark/1.6.1/libexec/python/lib/pyspark.zip
    

Geben Sie hier die Bildbeschreibung ein


Welche Version von Pycharm ist das? Ich bin auf der 2016.1 Community Edition und sehe dieses Fenster nicht.
Ravindrab

2016.1 Ich bin auf osx, aber es sollte ähnlich sein. Gehen Sie unter "Einstellungen". Klicken Sie links auf Ihr Projekt.
Sthomps

Vielen Dank. Dies hat mir bei IntelliJ IDEA geholfen, das nicht über die Einstellung für den Projektinterpreter verfügt.
OneCricketeer

Können Sie erklären, was das Hinzufügen zum Inhaltsstamm bewirkt? Ich musste das nicht tun ... Ich habe nur den $SPARK_HOME/pythonin den Interpreter-Klassenpfad eingefügt und die Umgebungsvariablen hinzugefügt, und es funktioniert wie erwartet.
OneCricketeer

@ Cricket_007 Der 3. Punkt: Add pyspark and py4j to content root (use the correct Spark version)half mir bei der Code-Vervollständigung. Wie haben Sie es geschafft, den Projektinterpreter zu ändern?
Ajeet Shah

13

Hier ist das Setup, das für mich funktioniert (Win7 64bit, PyCharm2017.3CE)

Intellisense einrichten:

  1. Klicken Sie auf Datei -> Einstellungen -> Projekt: -> Projektinterpreter

  2. Klicken Sie auf das Zahnradsymbol rechts neben der Dropdown-Liste Projektinterpreter

  3. Klicken Sie im Kontextmenü auf Mehr ...

  4. Wählen Sie den Interpreter und klicken Sie auf das Symbol "Pfade anzeigen" (unten rechts).

  5. Klicken Sie auf das Symbol + und fügen Sie die folgenden Pfade hinzu:

    \ python \ lib \ py4j-0.9-src.zip

    \ bin \ python \ lib \ pyspark.zip

  6. Klicken Sie auf OK, OK, OK

Testen Sie Ihre neuen Intellisense-Funktionen.



5

Konfigurieren Sie pyspark in pycharm (Windows)

File menu - settings - project interpreter - (gearshape) - more - (treebelowfunnel) - (+) - [add python folder form spark installation and then py4j-*.zip] - click ok

Stellen Sie sicher, dass SPARK_HOME in der Windows-Umgebung festgelegt ist. Pycharm übernimmt von dort aus. Bestätigen :

Run menu - edit configurations - environment variables - [...] - show

Optional können Sie SPARK_CONF_DIR in Umgebungsvariablen festlegen.


4

Ich habe die folgende Seite als Referenz verwendet und konnte pyspark / Spark 1.6.1 (über Homebrew installiert) in PyCharm 5 importieren lassen.

http://renien.com/blog/accessing-pyspark-pycharm/

import os
import sys

# Path for spark source folder
os.environ['SPARK_HOME']="/usr/local/Cellar/apache-spark/1.6.1"

# Append pyspark  to Python Path
sys.path.append("/usr/local/Cellar/apache-spark/1.6.1/libexec/python")

try:
    from pyspark import SparkContext
    from pyspark import SparkConf
    print ("Successfully imported Spark Modules")
except ImportError as e:
    print ("Can not import Spark Modules", e)
sys.exit(1)

Mit dem oben genannten wird pyspark geladen, aber ich erhalte einen Gateway-Fehler, wenn ich versuche, einen SparkContext zu erstellen. Es gibt ein Problem mit Spark von Homebrew, also habe ich Spark von der Spark-Website abgerufen (laden Sie das Pre-Built für Hadoop 2.6 und höher herunter) und verweise auf die Spark- und py4j-Verzeichnisse darunter. Hier ist der Code in Pycharm, der funktioniert!

import os
import sys

# Path for spark source folder
os.environ['SPARK_HOME']="/Users/myUser/Downloads/spark-1.6.1-bin-hadoop2.6"

# Need to Explicitly point to python3 if you are using Python 3.x
os.environ['PYSPARK_PYTHON']="/usr/local/Cellar/python3/3.5.1/bin/python3"

#You might need to enter your local IP
#os.environ['SPARK_LOCAL_IP']="192.168.2.138"

#Path for pyspark and py4j
sys.path.append("/Users/myUser/Downloads/spark-1.6.1-bin-hadoop2.6/python")
sys.path.append("/Users/myUser/Downloads/spark-1.6.1-bin-hadoop2.6/python/lib/py4j-0.9-src.zip")

try:
    from pyspark import SparkContext
    from pyspark import SparkConf
    print ("Successfully imported Spark Modules")
except ImportError as e:
    print ("Can not import Spark Modules", e)
    sys.exit(1)

sc = SparkContext('local')
words = sc.parallelize(["scala","java","hadoop","spark","akka"])
print(words.count())

Ich hatte viel Hilfe von diesen Anweisungen, die mir geholfen haben, Fehler in PyDev zu beheben und es dann zum Laufen zu bringen. PyCharm - https://enahwe.wordpress.com/2015/11/25/how-to-configure-eclipse-for-developing -mit-Python-und-Funken-auf-Hadoop /

Ich bin sicher, jemand hat ein paar Stunden damit verbracht, seinen Kopf gegen seinen Monitor zu schlagen, um dies zum Laufen zu bringen. Hoffentlich hilft dies dabei, seine geistige Gesundheit zu retten!


2

Ich condaverwalte meine Python-Pakete. Alles, was ich in einem Terminal außerhalb von PyCharm getan habe, war:

conda install pyspark

Wenn Sie eine frühere Version wünschen, sagen Sie 2.2.0, und tun Sie Folgendes:

conda install pyspark=2.2.0

Dies zieht automatisch auch py4j ein. PyCharm beschwerte sich dann nicht mehr import pyspark...und die Code-Vervollständigung funktionierte auch. Beachten Sie, dass mein PyCharm-Projekt bereits für die Verwendung des mit Anaconda gelieferten Python-Interpreters konfiguriert wurde.


1

Schauen Sie sich dieses Video an.

Angenommen, Ihr Spark-Python-Verzeichnis lautet: /home/user/spark/python

Angenommen, Ihre Py4j-Quelle lautet: /home/user/spark/python/lib/py4j-0.9-src.zip

Grundsätzlich fügen Sie das Spark-Python-Verzeichnis und das darin enthaltene py4j-Verzeichnis zu den Interpreter-Pfaden hinzu. Ich habe nicht genug Ruf, um einen Screenshot zu posten, oder ich würde es tun.

In dem Video erstellt der Benutzer eine virtuelle Umgebung innerhalb von Pycharm selbst. Sie können jedoch die virtuelle Umgebung außerhalb von Pycharm erstellen oder eine bereits vorhandene virtuelle Umgebung aktivieren, Pycharm damit starten und diese Pfade zu den Interpreterpfaden der virtuellen Umgebung hinzufügen innerhalb von Pycharm.

Ich habe andere Methoden verwendet, um Funken über die Bash-Umgebungsvariablen hinzuzufügen, was außerhalb von Pycharm hervorragend funktioniert, aber aus irgendeinem Grund wurden sie in Pycharm nicht erkannt, aber diese Methode hat perfekt funktioniert.


@ml_student Ich erwähne auch, dass Sie ein SparkContextObjekt am Anfang Ihres Skripts instanziieren müssen, wenn Sie der Videomethode folgen (was meine Empfehlung für ihre Geschwindigkeit und Einfachheit wäre) . Ich stelle dies fest, da die Verwendung der interaktiven pyspark-Konsole über die Befehlszeile automatisch den Kontext für Sie erstellt, während Sie sich in PyCharm selbst darum kümmern müssen. Syntax wäre:sc = SparkContext()
Jason Wolosonovich

1

Sie müssen PYTHONPATH, SPARK_HOME einrichten, bevor Sie IDE oder Python starten.

Windows, Umgebungsvariablen bearbeiten, Spark Python und py4j hinzufügen

PYTHONPATH=%PYTHONPATH%;{py4j};{spark python}

Unix,

export PYTHONPATH=${PYTHONPATH};{py4j};{spark/python}

1

Am einfachsten ist es, PySpark über einen Projektinterpreter zu installieren.

  1. Gehen Sie zu Datei - Einstellungen - Projekt - Projektinterpreter
  2. Klicken Sie oben rechts auf das Symbol +.
  3. Suchen Sie nach PySpark und anderen Paketen, die Sie installieren möchten
  4. Klicken Sie abschließend auf Paket installieren
  5. Es ist fertig!!

0

Aus der Dokumentation :

Verwenden Sie zum Ausführen von Spark-Anwendungen in Python das Skript bin / spark-submit im Spark-Verzeichnis. Dieses Skript lädt die Java / Scala-Bibliotheken von Spark und ermöglicht es Ihnen, Anwendungen an einen Cluster zu senden. Sie können auch bin / pyspark verwenden, um eine interaktive Python-Shell zu starten.

Sie rufen Ihr Skript direkt mit dem CPython-Interpreter auf, was meiner Meinung nach Probleme verursacht.

Versuchen Sie, Ihr Skript auszuführen mit:

"${SPARK_HOME}"/bin/spark-submit test_1.py

Wenn dies funktioniert, sollten Sie in der Lage sein, es in PyCharm zum Laufen zu bringen, indem Sie den Interpreter des Projekts auf Spark-Submit einstellen.


Sie sollten in der Lage sein, es in PyCharm zum Laufen zu bringen, indem Sie den Interpreter des Projekts auf Spark-Submit einstellen - Versucht. "Die ausgewählte Datei ist kein gültiges Zuhause für Python SDK". Gleiches gilt fürbin/pyspark
OneCricketeer

0

Ich folgte den Tutorials online und fügte die env-Variablen zu .bashrc hinzu:

# add pyspark to python
export SPARK_HOME=/home/lolo/spark-1.6.1
export PYTHONPATH=$SPARK_HOME/python/:$PYTHONPATH
export PYTHONPATH=$SPARK_HOME/python/lib/py4j-0.9-src.zip:$PYTHONPATH

Ich habe dann gerade den Wert in SPARK_HOME und PYTHONPATH für pycharm erhalten:

(srz-reco)lolo@K:~$ echo $SPARK_HOME 
/home/lolo/spark-1.6.1
(srz-reco)lolo@K:~$ echo $PYTHONPATH
/home/lolo/spark-1.6.1/python/lib/py4j-0.9-src.zip:/home/lolo/spark-1.6.1/python/:/home/lolo/spark-1.6.1/python/lib/py4j-0.9-src.zip:/home/lolo/spark-1.6.1/python/:/python/lib/py4j-0.8.2.1-src.zip:/python/:

Dann habe ich es in Run / Debug Configurations -> Umgebungsvariablen des Skripts kopiert.


0

Ich habe Pycharm verwendet, um Python und Funken zu verbinden. Ich hatte Java und Spark auf meinem PC vorinstalliert.

Dies sind die Schritte, denen ich gefolgt bin

  1. Neues Projekt erstellen

  2. In den Einstellungen für neues Projekt -> habe ich Python3.7 (venv) als Python ausgewählt. Dies ist die Datei python.exe, die sich im Ordner venv in meinem neuen Projekt befindet. Sie können jede Python geben, die auf Ihrem PC verfügbar ist.

  3. In den Einstellungen -> Projektstruktur -> Content_Root hinzufügen

    Ich habe zwei Zip-Ordner als Spark-Verzeichnisse hinzugefügt

    1. C: \ Benutzer \ USER \ spark-3.0.0-Vorschau2-bin-hadoop2.7 \ python \ lib \ py4j-0.10.8.1-src.zip
    2. C: \ Benutzer \ USER \ spark-3.0.0-Vorschau2-bin-hadoop2.7 \ python \ lib \ pyspark.zip
  4. Erstellen Sie eine Python-Datei im neuen Projekt. Gehen Sie dann zu Konfigurationen bearbeiten (in der Dropdown-Liste oben rechts) und wählen Sie Umgebungsvariablen

  5. Ich habe die folgenden Umgebungsvariablen verwendet und es hat gut für mich funktioniert

    1. PYTHONUNBUFFERED 1
    2. JAVA_HOME C: \ Programme \ Java \ jre1.8.0_251
    3. PYSPARK_PYTHON C: \ Benutzer \ USER \ PycharmProjects \ pyspark \ venv \ Scripts \ python.exe
    4. SPARK_HOME C: \ Benutzer \ USER \ spark-3.0.0-Preview2-bin-hadoop2.7
    5. HADOOP_HOME C: \ Users \ USER \ winutils

    Möglicherweise möchten Sie zusätzlich winutils.exe herunterladen und im Pfad C: \ Users \ USER \ winutils \ bin ablegen

  6. Geben Sie die gleichen Umgebungsvariablen in Konfigurationen bearbeiten -> Vorlagen an

  7. Gehen Sie zu Einstellungen -> Projektinterpreter -> pyspark importieren

  8. Führen Sie Ihr erstes Pyspark-Programm aus!


0

Dieses Tutorial von pyspark_xray , einem Tool zum Debuggen von Pyspark-Code auf PyCharm, kann Ihre Frage beantworten. Es deckt sowohl Windows als auch Mac ab.

Vorbereitung

  • Öffnen Sie die Befehlszeile, starten Sie den javaBefehl. Wenn Sie eine Fehlermeldung erhalten, laden Sie Java herunter und installieren Sie es (Version 1.8.0_221 ab April 2020).
  • Wenn Sie es nicht haben, laden Sie die PyCharm Community Edition herunter und installieren Sie sie (Version 2020.1 ab April 2020).
  • Wenn Sie es nicht haben, laden Sie die Anaconda Python 3.7-Laufzeit herunter und installieren Sie sie
  • Downloaden und installieren Sie funken neuesten Vorgefertigte für Apache Hadoop (Funke-2.4.5-bin-hadoop2.7 ab April 2020 200 + MB Größe) lokal
    • Windows :
      • Wenn Sie kein Entpack-Tool haben, laden Sie bitte 7zip herunter und installieren Sie es, ein kostenloses Tool zum Zip / Entpacken von Dateien
      • Extrahieren Sie den Inhalt der spark tgz-Datei in den Ordner c: \ spark-xxx-bin-hadoopx.x
      • Befolgen Sie die Schritte in diesem Tutorial
        • Bei der Installation winutils.exein einem c:\spark-x.x.x-bin-hadoopx.x\binOrdner ohne diese ausführbare Datei tritt beim Schreiben der Engine-Ausgabe ein Fehler auf
    • Mac :
      • Extrahieren Sie den Inhalt der spark tgz-Datei in den Ordner \ Users [USERNAME] \ spark-xxx-bin-hadoopx.x
  • installiere pyspark von pip install pysparkoderconda install pyspark

Konfiguration ausführen

Sie führen die Spark-Anwendung in einem Cluster über die Befehlszeile aus, indem Sie einen Befehl ausgeben spark-submit, der einen Spark-Job an den Cluster sendet. Mit PyCharm oder einer anderen IDE auf einem lokalen Laptop oder PC spark-submitkann jedoch kein Spark-Job gestartet werden. Führen Sie stattdessen die folgenden Schritte aus, um eine Ausführungskonfiguration der demo_app von pyspark_xray auf PyCharm einzurichten

  • Umgebungsvariablen festlegen:
    • HADOOP_HOMESollwertC:\spark-2.4.5-bin-hadoop2.7
    • SPARK_HOMESollwertC:\spark-2.4.5-bin-hadoop2.7
  • Verwenden Sie Github Desktop oder andere Git-Tools, um pyspark_xrayvon Github zu klonen
  • PyCharm> Öffnen Sie pyspark_xray als Projekt
  • Öffnen Sie PyCharm> Ausführen> Konfigurationen bearbeiten> Standardeinstellungen> Python und geben Sie die folgenden Werte ein:
    • Umgebungsvariablen (Windows):PYTHONUNBUFFERED=1;PYSPARK_PYTHON=python;PYTHONPATH=$SPARK_HOME/python;PYSPARK_SUBMIT_ARGS=pyspark-shell;
  • Öffnen Sie PyCharm> Ausführen> Konfigurationen bearbeiten, erstellen Sie eine neue Python-Konfiguration und zeigen Sie mit dem Skript auf den Pfad driver.pyvon pyspark_xray> demo_app

Treiber-Run-Konfiguration


-1

Der einfachste Weg ist

Gehen Sie zum Ordner site-packages Ihrer Anaconda / Python-Installation, kopieren Sie die Ordner pyspark und pyspark.egg-info und fügen Sie sie dort ein.

Starten Sie pycharm neu, um den Index zu aktualisieren. Die beiden oben genannten Ordner befinden sich im Spark / Python-Ordner Ihrer Spark-Installation. Auf diese Weise erhalten Sie Vorschläge zur Code-Vervollständigung auch von pycharm.

Die Site-Pakete finden Sie leicht in Ihrer Python-Installation. In anaconda ist es unter anaconda / lib / pythonx.x / site-packages


Auf diese Weise wird Pycharm denken, es sei eine andere Bibliothek.
HS Rathore

-1

Ich habe versucht, das pyspark-Modul über das Project Interpreter-Menü hinzuzufügen, aber es hat nicht gereicht ... Es gibt eine Reihe von Systemumgebungsvariablen, die wie SPARK_HOMEfolgt festgelegt werden müssen, und einen Pfad, /hadoop/bin/winutils.exezu dem lokale Datendateien gelesen werden können. Sie müssen auch korrekte Versionen von Python, JRE, JDK verwenden, die alle in Systemumgebungsvariablen und verfügbar sind PATH. Nachdem ich viel gegoogelt hatte, funktionierten die Anweisungen in diesen Videos

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.