Pyspark在driver(python3.5)和worker(python2.7)中有不同的版本

Posted

技术标签:

【中文标题】Pyspark在driver(python3.5)和worker(python2.7)中有不同的版本【英文标题】:Pyspark has different versions in driver (python3.5) and worker(python2.7) 【发布时间】:2019-01-28 07:25:25 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

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

PYSPARK_DRIVER_PYTHON PYSPARK_PYTHON

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

【讨论】:

以上是关于Pyspark在driver(python3.5)和worker(python2.7)中有不同的版本的主要内容,如果未能解决你的问题,请参考以下文章

在anaconda环境下搭建python3.5 + jupyter sparkR,scala,pyspark

PySpark:当通过 JDBC 在 Oracle 中创建表时,为啥我会得到“没有为类 oracle.jdbc.driver.T4CRowidAccessor 实现 getLong”?

pyspark案例系列10-java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

jupyter notebook 怎么跑pyspark

如何在windows下安装配置pyspark notebook

selenium3+python3