【问题标题】:rdd to df conversion using toDF() is giving error使用 toDF() 的 rdd 到 df 转换给出错误
【发布时间】:2021-03-17 11:51:06
【问题描述】:
My code is:
```
sample1 = df_pat_jour_status_other_occurances.rdd.map(lambda x: (x.lh_pat_id, x.src_key, x.Journey_Status)).toDF()
type(sample1)
```
```

Py4JJavaError:调用 z:org.apache.spark.api.python.PythonRDD.runJob 时出错。 :org.apache.spark.SparkException:作业因阶段失败而中止:阶段 1010.0 中的任务 0 失败 1 次,最近一次失败:阶段 1010.0 中丢失任务 0.0(TID 32154,LTIN214271.cts.com,执行程序驱动程序):org .apache.spark.SparkException:Python 工作者无法重新连接。 ```

【问题讨论】:

  • 如错误所说“worker 中的 Python 版本 3.7 与驱动程序 3.8 中的版本不同...请检查环境变量 PYSPARK_PYTHON 和 PYSPARK_DRIVER_PYTHON 是否设置正确。”

标签: pyspark rdd


【解决方案1】:

原因:

在您的情况下,从机和驱动程序使用不同的版本。

修复:

  1. 在 slaves 中安装 Python 3.8 版本。

  2. 修改spark/conf/spark-env.sh文件,添加PYSPARK_PYTHON=/usr/local/lib/python3.8

【讨论】:

  • 我已经安装了 python 3.9 版本。spark-end.sh 文件中的所有行都被注释了。然后你要求我添加哪个选项 PYSPARK_PYTHON ?最后对吗? PYSPARK_PYTHON 变量已添加到系统的环境变量列表中。我在系统中找不到任何路径,因为 /usr/local/lib/..如果我的理解有任何错误,请指导我。让您知道,通常我可以在笔记本中执行 pyspark 代码,即使是在映射数据帧时创建了流水线 rdd。只有在使用 toDF 进行 rdd 到 df 转换时才会遇到错误。
  • Py4JJavaError: 调用 z:org.apache.spark.api.python.PythonRDD.runJob 时出错。 :org.apache.spark.SparkException:作业因阶段失败而中止:阶段 1010.0 中的任务 0 失败 1 次,最近一次失败:阶段 1010.0 中丢失任务 0.0(TID 32154,LTIN214271.cts.com,执行程序驱动程序):org .apache.spark.SparkException:Python 工作者无法重新连接。 `
猜你喜欢
  • 2021-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多