Ceci est une copie de la question de quelqu'un d'autre sur un autre forum qui n'a jamais reçu de réponse, alors j'ai pensé que je la poserais à nouveau ici, car j'ai le même problème. (Voir http://geekple.com/blogs/feeds/Xgzu7/posts/351703064084736 )
J'ai installé Spark correctement sur ma machine et je suis capable d'exécuter des programmes python avec les modules pyspark sans erreur lorsque j'utilise ./bin/pyspark comme interprète python.
Cependant, lorsque j'essaie d'exécuter le shell Python normal, lorsque j'essaie d'importer des modules pyspark, j'obtiens cette erreur:
from pyspark import SparkContext
et ça dit
"No module named pyspark".
Comment puis-je réparer cela? Y a-t-il une variable d'environnement que je dois définir pour pointer Python vers les en-têtes / bibliothèques / etc pyspark.? Si mon installation Spark est / spark /, quels chemins pyspark dois-je inclure? Ou les programmes pyspark peuvent-ils être exécutés uniquement à partir de l'interpréteur pyspark?
la source
Réponses:
Voici une méthode simple (si vous ne vous souciez pas de son fonctionnement !!!)
Accédez à votre shell python
importer les modules nécessaires
Terminé!!!
la source
S'il imprime une telle erreur:
Veuillez ajouter $ SPARK_HOME / python / build à PYTHONPATH:
la source
Il s'avère que le bin pyspark CHARGE python et charge automatiquement les chemins de bibliothèque corrects. Découvrez $ SPARK_HOME / bin / pyspark:
J'ai ajouté cette ligne à mon fichier .bashrc et les modules sont maintenant correctement trouvés!
la source
export SPARK_HOME=~/dev/spark-1.1.0
allez comprendre. Vos noms de dossiers peuvent varier.N'exécutez pas votre fichier py en tant que:
python filename.py
utilisez plutôt:spark-submit filename.py
la source
import pyspark
échouera en ligne de commande ou dans un script exécuté. Vous devez soit a. exécutez pyspark via spark-submit comme prévu ou b. ajoutez $ SPARK_HOME / python à $ PYTHONPATH.En exportant le chemin SPARK et le chemin Py4j, cela a commencé à fonctionner:
Donc, si vous ne voulez pas les taper à chaque fois que vous voulez lancer le shell Python, vous voudrez peut-être l'ajouter à votre
.bashrc
fichierla source
Apache Spark
installation, une idée?libexec/python/build
sert le répertoire, mais spark 1.6.2 ne l'a pasSur Mac, j'utilise Homebrew pour installer Spark (formule "apache-spark"). Ensuite, j'ai défini le PYTHONPATH de cette façon pour que l'importation Python fonctionne:
Remplacez le "1.2.0" par la version actuelle d'apache-spark sur votre mac.
la source
Pour une exécution Spark dans pyspark, deux composants sont nécessaires pour fonctionner ensemble:
pyspark
package pythonLors du lancement de choses avec spark-submit ou pyspark, ces scripts prendront en charge les deux, c'est-à-dire qu'ils configurent votre PYTHONPATH, PATH, etc., afin que votre script puisse trouver pyspark, et ils démarrent également l'instance spark, en se configurant en fonction de vos paramètres , par exemple --master X
Alternativement, il est possible de contourner ces scripts et d'exécuter votre application Spark directement dans l'interpréteur python comme
python myscript.py
. Ceci est particulièrement intéressant lorsque les scripts Spark commencent à devenir plus complexes et reçoivent finalement leurs propres arguments.getOrCreate()
partir de l'objet générateur.Votre script peut donc avoir quelque chose comme ceci:
la source
Pour vous en débarrasser
ImportError: No module named py4j.java_gateway
, vous devez ajouter les lignes suivantes:la source
Sur Windows 10, ce qui suit a fonctionné pour moi. J'ai ajouté les variables d'environnement suivantes en utilisant Paramètres > Modifier les variables d'environnement pour votre compte :
(remplacez "C: \ Programming \ ..." par le dossier dans lequel vous avez installé spark)
la source
Pour les utilisateurs Linux, ce qui suit est la manière correcte (et non codée en dur) d'inclure la libaray pyspark dans PYTHONPATH. Les deux parties PATH sont nécessaires:
Notez ci-dessous que la version de la bibliothèque zippée est déterminée dynamiquement, nous ne la codons donc pas en dur.
la source
J'exécute un cluster Spark, sur CentOS VM, qui est installé à partir des packages cloudera yum.
J'ai dû définir les variables suivantes pour exécuter pyspark.
la source
C'est ce que j'ai fait pour utiliser ma distribution Anaconda avec Spark. Ceci est indépendant de la version de Spark. Vous pouvez remplacer la première ligne par le bin python de vos utilisateurs. De plus, à partir de Spark 2.2.0, PySpark est disponible en tant que package autonome sur PyPi, mais je ne l'ai pas encore testé.
la source
Vous pouvez obtenir le
pyspark path
en python en utilisantpip
(si vous avez installé pyspark en utilisant PIP) comme ci-dessousla source
J'ai eu le même problème.
Assurez-vous également que vous utilisez la bonne version de python et que vous l'installez avec la bonne version de pip. dans mon cas: j'avais à la fois python 2.7 et 3.x. J'ai installé pyspark avec
pip2.7 installer pyspark
et cela a fonctionné.
la source
J'ai eu cette erreur parce que le script python que j'essayais de soumettre s'appelait pyspark.py ( facepalm ). Le correctif consistait à définir mon PYTHONPATH comme recommandé ci-dessus, puis à renommer le script en pyspark_test.py et à nettoyer le pyspark.pyc qui a été créé en fonction du nom d'origine de mes scripts et qui a effacé cette erreur.
la source
Dans le cas de DSE (DataStax Cassandra & Spark) L'emplacement suivant doit être ajouté à PYTHONPATH
Ensuite, utilisez le pyspark dse pour obtenir les modules dans path.
la source
J'ai eu ce même problème et ajouterais une chose aux solutions proposées ci-dessus. Lorsque vous utilisez Homebrew sur Mac OS X pour installer Spark, vous devrez corriger l'adresse du chemin py4j pour inclure libexec dans le chemin (en vous rappelant de changer la version py4j par celle que vous avez);
la source
py4j
uniquement le dossier, cela n'a pas fonctionné. Utilisez le fichier zip ...Dans mon cas, il était installé sur un autre python dist_package (python 3.5) alors que j'utilisais python 3.6, donc ce qui suit a aidé:
la source
Vous pouvez également créer un conteneur Docker avec Alpine comme système d'exploitation et installer Python et Pyspark en tant que packages. Cela aura tout conteneurisé.
la source