Worker 和 Driver 中的 Python 版本不同

标签 python pyspark

我想回答的问题是:

创建RDD

使用映射创建由列指定的 NumPy 数组的 RDD。 RDD 的名称为 Rows

我的代码:Rows = df.select(col).rdd.map(make_array)

输入此内容后,我收到一个奇怪的错误,基本上是这样的:异常:worker 中的 Python 版本 2.7 与驱动程序 3.6 中的版本不同,PySpark 无法使用不同的次要版本运行。请检查环境变量 PYSPARK_PYTHON 和 PYSPARK_DRIVER_PYTHON 是否设置正确。

enter image description here

我知道我正在使用 Python 3.6 的环境中工作。我不确定这行特定的代码是否触发了此错误?你觉得怎么样

请注意,这不是我在此 Jupyter 笔记本上的第一行代码。 如果您需要更多信息,请告诉我,我会提供。我不明白为什么会发生这种情况。

最佳答案

您的从站和驱动程序没有使用相同版本的 Python,这将在您使用 Spark 时触发此错误。

确保您的从站上安装了 Python 3.6,然后(在 Linux 中)修改您的 spark/conf/spark-env.sh 文件以添加 PYSPARK_PYTHON=/usr/local/lib/python3.6 (如果这是你的从站中的 python 目录)

关于Worker 和 Driver 中的 Python 版本不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56890227/

相关文章:

python - TypeError : 'CurrencyConverter' object is not callable

python - 数学函数,未分配的变量?

dataframe - 如何根据一个月中的一周将日期截断为周五?

pyspark - AWS EMR 从 S3 导入 pyfile

python - 使用 pySpark 迭代数据框的每一行

python - 如何过滤pandas数据框中小写的行和单词?

python - 在 C 中加载 python pickled 对象

python - 将数据帧导出到arff文件python

pyspark - Delta Live Table (DLT) 是否可以作为参数传递给 Databricks 中的用户定义函数 (UDF)?

python - 如果将 DataFrame 保存到磁盘,如果您在脚本中使用该 DataFrame,Spark 是否会加载该数据?