You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jupyter Notebook中PySpark调用numpy失败问题求助

PySpark提示ModuleNotFoundError: No module named 'numpy'但已安装numpy的解决方法

问题原因

Spark的Driver进程(你的Jupyter Notebook)和Executor进程(Spark任务执行的worker)使用的Python环境不一致。Driver环境里已经安装了numpy,但Executor使用的Python环境没有安装该模块,导致执行分布式任务时触发报错。

解决方案

1. 确认Python环境路径

先在Jupyter中运行以下代码,确认当前Driver使用的Python路径以及是否安装numpy:

import sys
print("Driver Python路径:", sys.executable)
!{sys.executable} -m pip list | grep numpy

如果输出中能看到numpy,说明Driver环境没问题,问题出在Executor的Python环境。

2. 配置Spark让Executor使用正确的Python环境

有三种方式可以配置:

方式一:启动Jupyter前设置环境变量

在终端中先设置SPARK_PYTHON环境变量,再启动Jupyter:

export SPARK_PYTHON=/path/to/your/python/with/numpy
jupyter notebook

替换/path/to/your/python/with/numpy为你刚才输出的Python路径(比如/usr/local/bin/python3或者虚拟环境的Python路径)。

方式二:在Jupyter中配置SparkConf

在初始化SparkSession之前,指定Executor使用的Python路径:

from pyspark.sql import SparkSession

spark = SparkSession.builder \
    .appName("TF-IDF处理") \
    .master("local[*]") \
    .config("spark.executorEnv.PYSPARK_PYTHON", "/path/to/your/python/with/numpy") \
    .getOrCreate()

同样替换路径为你的Python路径。

方式三:使用pyspark命令时指定Python路径

如果是直接用pyspark shell,启动时指定:

PYSPARK_PYTHON=/path/to/your/python/with/numpy pyspark

3. 验证配置是否生效

运行以下代码测试Executor是否能找到numpy:

spark.sparkContext.parallelize([1,2,3]).map(lambda x: __import__('numpy').array([x])).collect()

如果返回[array([1]), array([2]), array([3])],说明配置成功,再运行你的余弦相似度矩阵代码即可正常执行。

内容的提问来源于stack exchange,提问作者John Doe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 07:15:35