首页 > 解决方案 > 在将模型部署到 AKS PipelineModel.load 时抛出 org.apache.hadoop.mapred.InvalidInputException

问题描述

我正在尝试将模型部署到 AKS。我正在使用 AML SDK 在 aml 工作区中注册模型。我正在使用 PipelineModel 模块来保存模型。我正在尝试使用 PipelineModel.load 加载模型。我的输入脚本如下所示:

` import os import json import pandas as pd

从 azureml.core.model 导入模型 从 pyspark.ml 导入 PipelineModel 从 mmlspark 导入 ComputeModelStatistics

def init(): import mmlspark # 这是加载 mmlspark 库所需要的 import logging

# extract and load model
global model, model_path
model_path = Model.get_model_path("{model_name}")
print(model_path)
print(os.stat(model_path))
print(os.path.exists(model_path))
#model_path = os.path.join(os.getenv("AZUREML_MODEL_DIR"), "{model_name}")
logging.basicConfig(level=logging.DEBUG)
#print(model_path)
#with ZipFile(model_path, 'r') as f:
#    f.extractall('model')
model = PipelineModel.load(model_path)
#model = PipelineModel.read().load(model_path)

def run(input_json): try: output_df = model.transform(pd.read_json(input_json)) evaluator = ComputeModelStatistics().setScoredLabelsCol("prediction").setLabelCol("label").setEvaluationMetric("AUC") result = evaluator .transform(predictions) auc = result.select("AUC").collect()[0][0] result = auc 例外为 e: result = str(e)

return json.dumps({{"result": result}})

`

它给出如下错误:

org.apache.hadoop.mapred.InvalidInputException:输入路径不存在:文件:/var/azureml-app/azureml-models/lightgbm.model/2/lightgbm.model/metadata\n\tat org.apache.hadoop。 mapred.FileInputFormat.singleThreadedListStatus(FileInputFormat.java:287)\n\tat org.apache.hadoop.mapred.FileInputFormat.listStatus(FileInputFormat.java:229)\n\tat org.apache.hadoop.mapred.FileInputFormat.getSplits(文件输入格式.java:315)。

os.path.exists 返回从 Model.get_model_path 获取的路径 true。

我在这里错过了什么吗?

标签: hadooppysparkazure-aksazureml

解决方案


推荐阅读