python-3.x - Pyspark在driver(python3.5)和worker(python2.7)中有不同的版本
问题描述
我同时使用 hdfs 和普通用户模式。本地的默认 Python 版本是 3.5,hdfs 中的默认 Python 版本是 2.7。当我尝试在 hdfs 中加载文件并尝试在 jupyter 中显示它时弹出此错误。
我试图编辑 spark-env.sh 文件。但是当我查找它时,有多个 spark -env.sh 文件,我编辑了所有文件但徒劳无功。我在堆栈溢出中发现了类似的问题,但似乎没有任何效果并适合我的特殊问题。
如果您需要任何信息,请在评论中告诉我,因为我不知道这里需要什么样的信息。
解决方案
您必须确保 spark-env.sh 中的以下环境变量指向所有(!)节点上具有相同(!)版本的 python 二进制可执行文件:
- PYSPARK_DRIVER_PYTHON
- PYSPARK_PYTHON
如果当前未设置 PYSPARK_PYTHON,请设置它。PYSPARK_PYTHON 定义了执行器和驱动程序的可执行文件。当您仅将 PYSPARK_DRIVER_PYTHON 设置为 python3.5 时,执行程序仍将使用默认的 python 可执行文件,即 python2.7,这会引发您看到的异常。
推荐阅读
- php - 使用 SQL Server 2019 将 Windows server 2003、php 5.2.6 连接到 Win Server 2019
- android - 为什么计算机对 JDK 不敏感
- discord.js - 试图将 Autorole 添加到我的机器人但得到 TypeError: fn.bind is not a function
- python - python的optparse
- angular - 未捕获(承诺):TypeError:无法读取未定义的属性“替换”
- python-3.x - 出现错误 Not Found 在服务器上找不到请求的 URL。如果您手动输入了 URL,请检查您的拼写并重试
- c++ - 如何为已定义的案例创建子类?
- php - 关于使用您的作曲家库建议的软件包
- firebase - Flutter - 尝试构建未来的上下文以检查用户是否已登录,但我的构建方法有错误
- java - 如何访问数组列表并使用 AND 条件验证值