Я пытаюсь запустить следующий pyspark код в Jupyter-Notebook на искровом кластере.
import pyspark
from pyspark.sql import SparkSession
from pyspark import SparkContext
spark = SparkSession \
.builder \
.master("spark://<master_ip>:7088")\
.appName("abc") \
.config("spark.some.config.option", "some-value") \
.getOrCreate()
print('Spark Session Created')
sc = SparkContext.getOrCreate()
df_1 = sc.range(0, 10)
df_2 = sc.range(11, 20)
df_1 = df_1.union(df_2)
df_1.count()
Ошибка:
Exception: Python in worker has different version 2.7 than that in driver 3.7, PySpark cannot run with different minor versions.Please check environment variables PYSPARK_PYTHON and PYSPARK_DRIVER_PYTHON are correctly set.
Пройдя несколько вопросов о стеке потока, например , этот . Я настроил следующие переменные среды на машине (в пределах $SPARK_HOME/conf/spark-env.sh
и .bashrc
), но все еще получаю ту же ошибку.
PYSPARK_PYTHON=/home/impadmin/anaconda3/bin/python3.7
PYSPARK_DRIVER_PYTHON=/home/impadmin/anaconda3/bin/python3.7
Теперь все становится интересным, когда я запускаю код в Я Python из терминала:
spark@Ubuntu-user2:~$ ipython
Python 3.7.3 (default, Mar 27 2019, 22:11:17)
Type 'copyright', 'credits' or 'license' for more informationIPython 7.6.1 -- An enhanced Interactive Python. Type '?' for help.
In [1]: import pyspark
...: from pyspark.sql import SparkSession ...: from pyspark import SparkContext ...: spark = SparkSession \
...: .builder \ ...: .master("spark://<master_ip>:7088")\ ...: .appName("abc") \
...: .config("spark.some.config.option", "some-value") \
...: .getOrCreate()
...:
...: print('Spark Session Created')
...: sc = SparkContext.getOrCreate()
...: df_1 = sc.range(0, 10)
...: df_2 = sc.range(11, 20)
...: df_1 = df_1.union(df_2)
...: df_1.count()
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
[ WARN] Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Spark Session Created
Out[1]: 19
Так все заработало! Но почему не в Юпитере? Мне нужно немного визуализировать и создать блокнот, но это невозможно только с I Python. Версия Spark: 2.2.1
Версия PySpark: 2.2.1