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

Jupyter Notebook导入graphframes报错:No module named graphframes

解决GraphFrames导入失败(ImportError: No module named graphframes)的问题

首先,你当前的包加载方式存在核心问题:在Jupyter Notebook这类交互式环境里执行!pyspark --packages ...,其实是启动了一个全新的独立Spark进程,但当前Notebook的内核并没有加载这个依赖包,后续执行from graphframes import *还是用的原来未配置依赖的Spark上下文,自然会找不到模块。

下面给你几个可行的解决办法,按推荐程度排序:

方法1:启动Notebook前直接指定GraphFrames依赖

如果你通过pyspark命令启动Notebook,直接在启动时带上packages参数,让内核一开始就加载依赖:

pyspark --packages graphframes:graphframes:0.5.0-spark2.1-s_2.11 --ipython notebook

启动完成后,直接执行from graphframes import *就能正常导入了。

方法2:在已启动的Notebook内核中动态添加依赖

如果已经打开了Notebook不想重启,可以通过SparkConf配置依赖后再创建SparkSession:

from pyspark import SparkConf
from pyspark.sql import SparkSession

# 配置GraphFrames依赖包
conf = SparkConf().set("spark.jars.packages", "graphframes:graphframes:0.5.0-spark2.1-s_2.11")
# 基于配置创建SparkSession(自动关联SparkContext)
spark = SparkSession.builder.config(conf=conf).getOrCreate()
sc = spark.sparkContext

# 现在可以正常导入了
from graphframes import *

⚠️ 注意:一定要确保GraphFrames版本和你的Spark版本匹配——你用的0.5.0版本对应Spark 2.1,如果实际Spark版本不是2.1,要换成对应版本的GraphFrames包(比如Spark 2.2对应0.5.1,Spark 2.3对应0.6.0等)。

方法3:手动下载JAR包添加到Spark路径

如果网络问题导致无法自动下载依赖,可以手动下载对应版本的GraphFrames JAR包,然后:

  • 把JAR包放到Spark安装目录的jars文件夹下;
  • 或者启动Spark时用--jars参数指定本地路径:
pyspark --jars /你的本地路径/graphframes-0.5.0-spark2.1-s_2.11.jar --ipython notebook

最后再提个细节:你之前的代码先创建了SparkContext,再执行!pyspark --packages...,这个顺序完全错了——SparkContext一旦创建,就没法再加载新的依赖包了,必须先确保依赖配置完成,再创建Spark上下文/SparkSession。

内容的提问来源于stack exchange,提问作者Daniel Chepenko

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:10:40