databricks群集上不一致的worker和驱动程序python版本的错误

时间:2019-10-27 01:53:54

标签: python eclipse pydev databricks azure-databricks

我正在MacBook上的Eclipse的数据块集群上运行Python3代码。

当我跑步时:

 Exception: Python in worker has different version 3.6 than that in driver 3.5, PySpark cannot run with different minor versions.Please check environment variables PYSPARK_PYTHON and PYSPARK_DRIVER_PYTHON are correctly set.

我遇到错误:

PYSPARK_PYTHON = pytohn3
PYSPARK_PYTHON = /Users/a_name/.pyenv/versions/3.6.0/bin/python

在日食中:

import sys
print(sys.version)

因此,我想从databricks笔记本中检查databricks集群的驱动程序和worker的python版本。

3.6.5 |Anaconda, Inc.| [GCC 7.2.0]

import subprocess
python_version = subprocess.check_output(['python', '--version'], stderr=subprocess.STDOUT)
print(python_version)

我知道了:

b'Python 2.7.15 :: Anaconda, Inc.\n'

我知道了

Map<String, dynamic>

我不知道为什么这里有两个python版本? 我应该在Eclipse中更改python代码的python版本吗?

1 个答案:

答案 0 :(得分:0)

两个Python版本都可以,因为用于检查Python版本的两个代码正在调用您环境中的不同Python,如下所示。

  1. sys.version代码返回的Python版本来自您当前正在使用的Python解释器。

  2. 但是subprocess.check_output(['python', '--version'], stderr=subprocess.STDOUT)代码返回的Python版本是当前操作系统会话的默认Python版本。

因此它们通常是不同的,请参见Python 3.6的sys.versionsubprocess.check_output的说明。

正如问题Exception: Python in worker has different version 3.6 than that in driver 3.5, PySpark cannot run with different minor versions.Please check environment variables PYSPARK_PYTHON and PYSPARK_DRIVER_PYTHON are correctly set.所述,您当前的PySpark驱动程序需要一个Python 3.5运行时,因此请尝试在您的环境中安装另一个Python 3.5运行时,并且可以通过以下代码修复它,而无需进行配置{{ 1}}变量。

PYSPARK_PYTHON