pyspark ImportError: impossible d'importer nom accumulateurs
But: je suis en train d'essayer d'obtenir apache spark pyspark afin d'être correctement interprétés dans mon pycharm IDE.
Problème: j'ai actuellement recevoir le message d'erreur suivant:
ImportError: cannot import name accumulators
Je suivais le blog suivant pour m'aider à travers le processus. http://renien.github.io/blog/accessing-pyspark-pycharm/
En raison du fait que mon code était de prendre la sauf le chemin je me suis personnellement débarrasser de l'essai: à l'exception de: juste pour voir ce que l'erreur exacte est.
Avant cela, j'ai reçu le message d'erreur suivant:
ImportError: No module named py4j.java_gateway
Cela a été résolu simplement en tapant '$sudo pip install py4j " dans bash.
Mon code ressemble actuellement les suivants morceau:
import os
import sys
# Path for spark source folder
os.environ['SPARK_HOME']="[MY_HOME_DIR]/spark-1.2.0"
# Append pyspark to Python Path
sys.path.append("[MY_HOME_DIR]/spark-1.2.0/python/")
try:
from pyspark import SparkContext
print ("Successfully imported Spark Modules")
except ImportError as e:
print ("Can not import Spark Modules", e)
sys.exit(1)
Mes Questions:
1. Quelle est la source de cette erreur? Quelle est la cause?
2. Comment puis-je résoudre le problème afin que je puisse courir pyspark dans mon pycharm éditeur.
REMARQUE: L'interprète que j'utilise dans pycharm Python 2.7.8 (~/anaconda/bin/python)
Merci d'avance!
Ne
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, configurez votre environnement var
assurez-vous que vous utilisez votre propre nom de la version
et puis, redémarrer! il est important de valider vous le mettre.
C'est autour de la variable PYTHONPATH, qui spécifie python module de recherche de chemin.
Cause surtout pyspark fonctionne bien, vous pouvez consulter le script shell pyspark, et de voir le PYTHONPATH est comme ci-dessous.
PYTHONPATH=/usr/lib/spark/python/lib/py4j-0.8.2.1-src.zip:/usr/lib/spark/python.
Mon environnement est Cloudera Qickstart VM 5.3.
Espère que cette aide.
export PYTHONPATH=/opt/spark/python
Cela me semble une circulaire de dépendance de bug.
Dans
MY_HOME_DIR]/spark-1.2.0/python/pyspark/context.py
supprimer ou commenter la lignefrom pyspark import accumulators
.C'est environ 6 lignes de code à partir du haut.
J'ai déposé un problème avec l'Étincelle projet ici:
https://issues.apache.org/jira/browse/SPARK-4974
Je suis tombé sur la même erreur.
Je viens d'installer py4j.
Pas de nécessité de mettre en bashrc.
J'ai rencontré le même problème en utilisant cdh 5.3
dans la fin ce est en fait avéré être assez facile à résoudre. J'ai remarqué que le script /usr/lib/spark/bin/pyspark a les variables définies pour ipython
J'ai installé anaconda /opt/anaconda
enfin....
exécuté
qui fonctionne maintenant comme prévu.
Je suis tombé sur cette question. Pour le résoudre, j'ai commenté la ligne 28, dans
~/spark/spark/python/pyspark/context.py
, le fichier qui a été la cause de l'erreur:Que l'accumulateur d'importation semble être couverts par la ligne suivante (29), il ne semble pas être un problème. Spark est maintenant en cours d'exécution fine (après
pip install py4j
).Dans Pycharm, avant d'exécuter le script ci-dessus, assurez-vous que vous avez décompressé le py4j*.fichier zip. et d'ajouter sa référence dans le script sys.chemin d'accès.append("chemin d'accès de l'étincelle*/python/lib")
Il a travaillé pour moi.
J'ai été en mesure de trouver une solution pour cela sur Windows, mais pas vraiment sûr de la cause de cela.
Si vous ouvrez accumulators.py, alors vous voyez qu'il y a d'abord un commentaire d'en-tête, suivi par le texte de l'aide et puis les déclarations d'importation. déplacer un ou plusieurs des déclarations d'importation, juste après le bloc de commentaires avant le texte de l'aide. Cela a fonctionné sur mon système et j'ai été en mesure d'importer pyspark sans aucun problème.
Si vous avez juste mis à niveau vers une nouvelle étincelle version, assurez-vous que la nouvelle version de py4j est dans votre CHEMIN, puisque chaque nouvelle étincelle version est livré avec un nouveau py4j version.
Dans mon cas c'est: "$SPARK_HOME/python/lib/py4j-0.10.3-src.zip" pour le spark 2.0.1 à la place de l'ancien "$SPARK_HOME/python/lib/py4j-0.10.1-src.zip" pour le spark 2.0.0
Seule chose qui a fonctionné pour moi, aller au dossier de base de l'étincelle. ensuite, allez à accumulators.py
Au début, il y avait tort multi ligne de commande utilisée. supprimer tout.
vous êtes bon pour aller!