本文最后更新于 2024-07-04,文章内容可能已经过时。

问题说明:

在使用Pyspark模块中的map方法进行数据计算操作时,发现控制台疯狂报错,如图:

ps.运行代码如下

from pyspark import SparkConf, SparkContext
import os

# 确保PYSPARK_PYTHON指向正确的Python解释器路径
os.environ['PYSPARK_PYTHON'] = "E:/SoftWare/Python/python.exe"

# 创建SparkConf类对象
conf = SparkConf().setMaster("local[*]").setAppName("test_spark_app")

# 基于SparkConf类对象创建SparkContext对象
sc = SparkContext(conf=conf)

rdd = sc.parallelize([1, 2, 3, 4, 5])


# 定义计算函数
def func(data):
    return data * 10


# 通过map方法进行数据计算
rdd2 = rdd.map(func)
print(rdd2.collect())

sc.stop()

解决过程:

  1. 检查本机运行环境:
    JDK:22

    Python:3.12

    Pyspark:3.5.1

  2. 尝试询问AI得到如下回答:

    Python 3.12目前并未正式支持PySpark,因为Apache Spark的官方推荐版本通常会落后于Python的最新稳定版。PySpark是为了让Spark能够在Python环境中运行而开发的库,它依赖于Spark的C/C++核心以及Python的API绑定。

  3. 切换Python版本为3.10(已知兼容性及稳定性目前为最佳)

问题结果:

成功使用map方法输出对应计算结果

总结:

不要贸然使用最新版本的各类模块或者语言版本环境,模块与语言版本之间的兼容性可能会存在问题