AWS Glue导入pyspark.errors时遇ModuleNotFoundError求助
问题解答
核心原因
pyspark.errors模块是PySpark 3.4.0及以上版本才新增的模块,而AWS Glue的部分旧版本(比如Glue 4.0及以下)搭载的PySpark版本低于3.4.0,因此会出现ModuleNotFoundError。不需要单独导入jar包,这是版本兼容性问题,而非依赖缺失。
解决方案
- 升级Glue作业版本:将你的AWS Glue作业切换到Glue 4.1或更高版本(Glue 4.1对应PySpark 3.4.0),就能直接使用
pyspark.errors相关模块。在创建/编辑Glue作业时,选择对应的"Glue版本"即可。 - 兼容旧版本的替代实现:如果暂时无法升级Glue版本,可以手动实现schema断言逻辑,替代
PySparkAssertionError的使用。示例代码:
这样无需依赖高版本PySpark的异常类,也能完成schema校验。# 假设target_schema是你从S3获取的目标schema assert df.schema == target_schema, f"Schema不匹配:输入schema={df.schema}, 目标schema={target_schema}"
内容的提问来源于stack exchange,提问作者marcin2x4
相关产品推荐
相关产品推荐

