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