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

在Google Colab中运行GraphFrames时遇错误求助

Google Colab中GraphFrames无法正常使用的解决方法

你遇到的两次Py4JJavaError,核心原因是GraphFrames版本与PySpark版本不兼容,加上Colab环境仅通过pip安装Python端依赖不够,必须手动加载对应的Java jar包。以下是实测有效的解决步骤:

1. 卸载不兼容版本,安装匹配组合

先卸载已装的pyspark和graphframes:

!pip uninstall -y pyspark graphframes

安装经过验证的兼容版本(GraphFrames 0.8.2 适配 PySpark 3.2.1,在Colab中稳定运行):

!pip install pyspark==3.2.1 graphframes==0.8.2

2. 带Jar包配置创建SparkSession

Colab中Spark需要明确加载GraphFrames的Java依赖包,创建Session时指定jar包路径:

from pyspark.sql import SparkSession
import graphframes
import os

# 获取pip安装的GraphFrames jar包路径
graphframes_jar = os.path.join(
    os.path.dirname(os.path.dirname(graphframes.__file__)),
    "graphframes-0.8.2-spark3.2-s_2.12.jar"
)

# 初始化SparkSession
spark = SparkSession.builder \
    .appName("GraphFramesDemo") \
    .config("spark.jars", graphframes_jar) \
    .getOrCreate()

3. 测试GraphFrames功能

用示例代码验证是否能正常创建GraphFrame:

from graphframes import GraphFrame

# 构建顶点数据
vertices = spark.createDataFrame([
    ("1", "张三", 28),
    ("2", "李四", 32),
    ("3", "王五", 25)
], ["id", "name", "age"])

# 构建边数据
edges = spark.createDataFrame([
    ("1", "2", "同事"),
    ("2", "3", "好友"),
    ("3", "1", "同学")
], ["src", "dst", "relation"])

# 创建GraphFrame对象
g = GraphFrame(vertices, edges)

# 打印顶点信息验证
g.vertices.show()

错误原因拆解

  • java.lang.ClassNotFoundException: org.graphframes.GraphFramePythonAPI:仅安装Python端的GraphFrames,Spark找不到对应的Java类实现,必须加载配套的jar包。
  • java.lang.NoSuchMethodError:GraphFrames 0.6与PySpark 3.3.0版本不兼容,两者的API方法签名不匹配,更换兼容版本即可解决。

内容的提问来源于stack exchange,提问作者Tytire Recubans

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 02:50:35