Ошибка модуля pyspark.sql: Python в рабочем имеет версию 2.7, отличную от той, что в драйвере 3.7, PySpark не может работать с другими второстепенными версиями - PullRequest
0 голосов
/ 30 мая 2019
df = spark.read.parquet('xxx')
tmstmp = df['timestamp']

spark.conf.set("spark.sql.session.timeZone", "Singapore")

time_df = spark.createDataFrame([('tmstmp',)], ['unix_time'])
time_df.select(from_unixtime('unix_time').alias('ts')).collect()

df['timestamp'] = time_df

spark.conf.unset("spark.sql.session.timeZone")

в этой строке есть ошибка:

time_df.select(from_unixtime('unix_time').alias('ts')).collect()

с ошибкой исключения msg:

Исключение: Python в рабочей версии отличается от версии 2.7, чем в драйвере 3.7, PySpark не может работать с другими второстепенными версиями. Проверьте, правильно ли установлены переменные окружения PYSPARK_PYTHON и PYSPARK_DRIVER_PYTHON.

1 Ответ

0 голосов
/ 30 мая 2019

Исключение, которое вы получаете, само по себе довольно ясно. У вас есть кластер с двумя или более узлами. Сервер / узел, с которого вы отправили эту команду (мастер), имеет версию Python, отличную от ваших других узлов (работник).

Возможное решение:

  • Увеличьте версию Python для своих рабочих узлов или установите PYSPARK_PYTHON env на python3.7.
  • изменить версию Python вашего драйвера в соответствии с версией рабочих узлов.
...