在PySpark中调用SageMaker预测报错:TypeError: 'JavaPackage' object is not callable
解决Spark作业调用SageMaker预测时的
TypeError: 'JavaPackage' object is not callable错误 这个错误的核心原因是Spark环境未正确加载sagemaker-pyspark对应的Java依赖组件,导致Python层无法找到可调用的Java类,只能拿到JavaPackage对象。以下是具体解决步骤:
提交Spark作业时指定正确的Maven依赖
运行Spark作业时,必须通过--packages参数引入与Python版本匹配的sagemaker-sparkJAR包。例如,针对Scala 2.12(适配Spark 3.x)的命令:spark-submit --packages com.amazonaws:sagemaker-spark_2.12:2.4.3 your_job.py注意:JAR包的版本必须和你安装的Python
sagemaker-pyspark版本完全一致,可以通过pip show sagemaker-pyspark查看当前Python包版本。验证Python与Java依赖版本兼容性
确保sagemaker-pyspark的Python包版本和Spark作业加载的Java JAR版本严格匹配。版本不兼容会导致跨语言调用时出现类找不到的问题。比如如果Python包是2.4.3,JAR也必须用2.4.3。检查代码中的拼写错误(非当前错误,但需注意)
你的代码里ouput_schema存在拼写错误,应该是output_schema,这个问题虽然不会触发当前的JavaPackage错误,但会在后续执行transform时引发异常,建议提前修正。
内容的提问来源于stack exchange,提问作者Exorcismus
相关产品推荐
相关产品推荐

