我正在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版本吗?
答案 0 :(得分:0)
两个Python版本都可以,因为用于检查Python版本的两个代码正在调用您环境中的不同Python,如下所示。
从sys.version
代码返回的Python版本来自您当前正在使用的Python解释器。
但是subprocess.check_output(['python', '--version'], stderr=subprocess.STDOUT)
代码返回的Python版本是当前操作系统会话的默认Python版本。
因此它们通常是不同的,请参见Python 3.6的sys.version
和subprocess.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