首页 > 解决方案 > Pyspark在driver(python3.5)和worker(python2.7)中有不同的版本

问题描述

我同时使用 hdfs 和普通用户模式。本地的默认 Python 版本是 3.5,hdfs 中的默认 Python 版本是 2.7。当我尝试在 hdfs 中加载文件并尝试在 jupyter 中显示它时弹出此错误。

在此处输入图像描述

我试图编辑 spark-env.sh 文件。但是当我查找它时,有多个 spark -env.sh 文件,我编辑了所有文件但徒劳无功。我在堆栈溢出中发现了类似的问题,但似乎没有任何效果并适合我的特殊问题。

如果您需要任何信息,请在评论中告诉我,因为我不知道这里需要什么样的信息。

标签: python-3.xpython-2.7pysparkjupyter-notebookhdfs

解决方案


您必须确保 spark-env.sh 中的以下环境变量指向所有(!)节点上具有相同(!)版本的 python 二进制可执行文件:

  • PYSPARK_DRIVER_PYTHON
  • PYSPARK_PYTHON

如果当前未设置 PYSPARK_PYTHON,请设置它。PYSPARK_PYTHON 定义了执行器和驱动程序的可执行文件。当您仅将 PYSPARK_DRIVER_PYTHON 设置为 python3.5 时,执行程序仍将使用默认的 python 可执行文件,即 python2.7,这会引发您看到的异常。


推荐阅读