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

如何在AWS Glue 3.0中运行GraphFrame?类加载异常求助

在AWS Glue 3.0中使用GraphFrame的解决方案

问题分析

你遇到的类加载异常:

py4j.protocol.Py4JJavaError: An error occurred while calling o180.loadClass.
: java.lang.ClassNotFoundException: org.graphframes.GraphFramePythonAPI
at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)

本质是仅部署GraphFrame的Python wheel包不足以运行——GraphFrame依赖对应的Scala/Java jar包,Glue的类加载器找不到这个核心依赖才抛出错误。

具体解决步骤

  • 获取匹配版本的Java jar包
    你使用的是graphframes:0.8.2-spark3.1-s_2.12的Python wheel包,必须同步获取同版本的Java jar包:graphframes-0.8.2-spark3.1-s_2.12.jar,确保版本完全一致。

  • 上传依赖到S3
    将上述jar包和Python wheel包都上传到你的AWS S3存储桶,比如路径分别为:

    • jar包:s3://your-glue-resources/libs/graphframes-0.8.2-spark3.1-s_2.12.jar
    • wheel包:s3://your-glue-resources/libs/graphframes-0.8.2-spark3.1-s_2.12-py3-none-any.whl
  • 配置Glue作业参数
    在Glue作业的配置界面,添加以下关键参数:

    1. 作业参数中添加--extra-jars,值为jar包的S3路径:s3://your-glue-resources/libs/graphframes-0.8.2-spark3.1-s_2.12.jar
    2. 作业参数中添加--conf,值为spark.sql.extensions=org.apache.spark.sql.graphframes.GraphFrameExtensions(启用GraphFrame的SQL扩展,避免额外异常)
    3. Python库路径中添加wheel包的S3路径,确保Glue能加载Python端的GraphFrame模块。
  • 代码中正确导入使用
    在你的Glue Python代码中,保持常规导入即可:

    from pyspark.sql import SparkSession
    from graphframes import GraphFrame
    
    # 示例:创建简单图
    vertices = spark.createDataFrame([
        ("1", "Alice", 34),
        ("2", "Bob", 36),
        ("3", "Charlie", 30)
    ], ["id", "name", "age"])
    
    edges = spark.createDataFrame([
        ("1", "2", "friend"),
        ("2", "3", "follow")
    ], ["src", "dst", "relationship"])
    
    g = GraphFrame(vertices, edges)
    g.vertices.show()
    

注意事项

  • 版本严格匹配:AWS Glue 3.0对应Spark 3.1.1,必须使用标注spark3.1的GraphFrame版本,不能混用Spark 2.x或Spark 3.2的版本。
  • IAM权限:确保Glue作业的IAM角色拥有读取S3依赖路径的权限,否则会出现依赖加载失败的隐性错误。
  • 避免重复配置:如果同时设置--extra-jars和spark.jars.packages,优先使用--extra-jars的本地S3包,避免网络拉取依赖的不稳定问题。

内容的提问来源于stack exchange,提问作者Senthil Kumar Vaithiyanathan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 11:58:24