lorsque j'exécute ce qui suit dans un environnement Jupyter Python 3.5, le message d'erreur ci-dessous s'affiche. Des idées sur ce qui le cause?
import findspark
findspark.init()
erreur:
IndexError Traceback (most recent call
last) <ipython-input-20-2ad2c7679ebc> in <module>()
1 import findspark
----> 2 findspark.init()
3
4 import pyspark
/.../anaconda/envs/pyspark/lib/python3.5/site-packages/findspark.py in init(spark_home, python_path, edit_rc, edit_profile)
132 # add pyspark to sys.path
133 spark_python = os.path.join(spark_home, 'python')
--> 134 py4j = glob(os.path.join(spark_python, 'lib', 'py4j-*.Zip'))[0]
135 sys.path[:0] = [spark_python, py4j]
136
IndexError: list index out of range
Cela est probablement dû au fait que la variable d'environnement SPARK_HOME
n'a pas été définie correctement sur votre système. Sinon, vous pouvez simplement le spécifier lors de l'initialisation de findspark
, comme suit:
import findspark
findspark.init('/path/to/spark/home')
Après cela, tout devrait fonctionner!
J'obtenais la même erreur et j'ai pu le faire fonctionner en entrant le répertoire d'installation exact:
import findspark
# Use this
findspark.init("C:\Users\PolestarEmployee\spark-1.6.3-bin-hadoop2.6")
# Test
from pyspark import SparkContext, SparkConf
Fondamentalement, c'est le répertoire où spark a été extrait. À l'avenir, chaque fois que vous verrez
spark_home
entrer le même répertoire d'installation. J'ai aussi essayé d'utiliser toree pour créer un kernal, mais cela échoue d'une manière ou d'une autre. Un kernal serait une solution plus propre.
Vous devez mettre à jour la variable SPARK_HOME
dans bash_profile. Pour moi, la commande suivante a fonctionné (en terminal):
export SPARK_HOME="/usr/local/Cellar/Apache-spark/2.2.0/libexec/"
Après cela, vous pouvez utiliser les commandes suivantes:
import findspark
findspark.init('/usr/local/Cellar/Apache-spark/2.2.0/libexec')