我试图使用pysparkling.ml.H2OMOJOModel来预测火花数据,使用h2o==3.32.0.2在AWS Glue Jobs中训练的MOJO模型,如何得到错误: TypeError:'JavaPackage‘对象不可调用。
我在AWS支持中打开了一张罚单,他们确认Glue环境很好,问题很可能是汽水(喷汽水)。似乎缺少了一些依赖库,但我不知道哪个库。如果我在本地计算机上运行(我只需要更改GBM_grid__1_AutoML_20220323_233606_model_53.zip)的mojo路径),下面的简单代码就能很好地工作。
有谁能成功地在Glue jobs上使用闪闪发光的水呢?
工作详细信息:-Glue 2.0版-附加-python,H2O-pyfling-2.4=3.36.0.2-1 -Worker类型: G1.X -Number of -Worker:2 -Using脚本"createFromMojo.py“
createFromMojo.py:
import sys
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.job import Job
import pandas as pd
from pysparkling.ml import H2OMOJOSettings
from pysparkling.ml import H2OMOJOModel
# from pysparkling.ml import *
## @params: [JOB_NAME]
args = getResolvedOptions(sys.argv, ["JOB_NAME"])
#Job setup
sc = SparkContext()
glueContext = GlueContext(sc)
spark = glueContext.spark_session
job = Job(glueContext)
job.init(args["JOB_NAME"], args)
caminho_modelo_mojo='s3://prod-lakehouse-stream/modeling/approaches/GBM_grid__1_AutoML_20220323_233606_model_53.zip'
print(caminho_modelo_mojo)
print(dir())
settings = H2OMOJOSettings(convertUnknownCategoricalLevelsToNa = True, convertInvalidNumbersToNa = True)
model = H2OMOJOModel.createFromMojo(caminho_modelo_mojo, settings)
data = {'days_since_last_application': [3, 2, 1, 0], 'job_area': ['a', 'b', 'c', 'd']}
base_escorada = model.transform(spark.createDataFrame(pd.DataFrame.from_dict(data)))
print(base_escorada.printSchema())
print(base_escorada.show())
job.commit()发布于 2022-12-03 17:15:33
我可以按照以下步骤成功地运行:
http://h2o-release.s3.amazonaws.com/sparkling-water/spark-3.1/3.36.1.1-1-3.1/index.html
https://stackoverflow.com/questions/71928885
复制相似问题