当前位置:   article > 正文

Python3使用pyspark时报错PicklingError_could not serialize object: indexerror: tuple inde

could not serialize object: indexerror: tuple index out of range

在使用pyspark的时候,需要使用RDD中的map成员方法
遇到了如下问题:

_pickle.PicklingError: Could not serialize object: IndexError: tuple index out of range

代码如下:

from pyspark import SparkConf, SparkContext

import os
os.environ["PYSPARK_PYTHON"] = "/Users/week/PycharmProjects/PythonProject/venv/bin/python3"

conf = SparkConf().setMaster("local[*]").setAppName("test_spark")
sc = SparkContext(conf=conf)

# 准备一个RDD
rdd = sc.parallelize([1, 2, 3, 4, 5])


# 通过map方法将数据全部乘以10
def func(data):
    return data * 10


rdd2 = rdd.map(func)
print(rdd2.collect())

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

报错信息如下:

在这里插入图片描述

错误原因:

Python版本使用的是3.11过高导致,于是更换了3.10.9
官网下载太慢,这里在阿里云镜像仓库进行下载,3秒下载完成
在这里插入图片描述
附上仓库地址:
https://registry.npmmirror.com/binary.html?path=python/3.10.9/

修改代码里的python解释器环境

os.environ["PYSPARK_PYTHON"] = "/Library/Frameworks/Python.framework/Versions/3.10/bin/python3"
  • 1

控制台输出成功,错误解决
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/562700
推荐阅读