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

在AWS Glue配置GResearch Spark Extension遇模块缺失问题求解决

解决AWS Glue中导入gresearch spark扩展包的ModuleNotFoundError问题

出现ModuleNotFoundError: No module named 'gresearch'的核心原因是:你只上传了该扩展包的Java Jar文件,但gresearch.spark.diff属于Python模块,需要同时部署对应的Python代码包到Glue可访问的路径。以下是正确的配置步骤:

1. 获取完整依赖包

该扩展包包含Java和Python两部分,需要同时准备:

  • Java Jar包:你已有的uk.co.gresearch.spark_spark-extension_2.12-2.2.0-3.3.jar
  • Python Wheel包:从Maven仓库下载对应版本的spark-extension_2.12-2.2.0-3.3-py3-none-any.whl,或从本地.ivy2/cache/uk.co.gresearch.spark/spark-extension_2.12/python目录提取Python模块文件。

2. 上传依赖到S3

将Jar包和Python Wheel包(或Python模块目录)上传到同一个S3路径,例如:
s3://your-glue-bucket/dependencies/gresearch/

3. 配置Glue作业

在Glue作业的配置页面中进行以下设置:

  • Python路径(Python path):添加S3依赖路径到Python模块搜索路径,格式为s3://your-glue-bucket/dependencies/gresearch/
  • 依赖Jar包(Dependent jars):添加Jar包的完整S3路径,例如s3://your-glue-bucket/dependencies/gresearch/uk.co.gresearch.spark_spark-extension_2.12-2.2.0-3.3.jar
  • 注意:删除代码中spark.jars.packages的配置,Glue作业优先使用界面配置的依赖,直接设置packages可能因网络限制无法拉取依赖。

4. 适配Glue环境的代码示例

Glue推荐使用内置的GlueContext获取SparkSession,避免手动创建时的配置冲突,修改后的代码如下:

from awsglue.context import GlueContext
from pyspark.context import SparkContext

sc = SparkContext.getOrCreate()
glueContext = GlueContext(sc)
spark = glueContext.spark_session

# 导入gresearch模块
from gresearch.spark.diff import *

df1 = spark.createDataFrame([
  [1, "ABC", 5000, "US"],
  [2, "DEF", 4000, "UK"],
  [3, "GHI", 3000, "JPN"],
  [4, "JKL", 4500, "CHN"]
], ["id", "name", "sal", "Address"])

df2 = spark.createDataFrame([
  [1, "ABC", 5000, "US"],
  [2, "DEF", 4000, "CAN"],
  [3, "GHI", 3500, "JPN"],
  [4, "JKL_M", 4800, "CHN"]
], ["id", "name", "sal", "Address"])

df1.show()
df2.show()

options = DiffOptions().with_change_column('changes')
df1.diff_with_options(df2, options, 'id').show()

5. 验证运行

启动Glue作业后,查看日志确认依赖是否加载成功。如果仍有问题,检查S3路径是否正确、Glue作业的IAM角色是否有读取该S3路径的权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 20:40:29