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

如何使用Python正确向Azure ML Batch Endpoint输出数据

Azure ML Batch Endpoint 带表头CSV输出解决方案

核心问题原因

Azure ML Batch Endpoint默认的输出序列化逻辑会直接扁平化处理返回的数组或DataFrame,不会自动保留表头和多列结构,直接返回嵌套列表格式的数据时就会出现多余的方括号和单引号。

解决步骤

1. 调整run()方法返回逻辑

不要直接返回pandas DataFrame或二维数组,按以下格式构造返回值:

import pandas as pd

def run(mini_batch):
    # 此处替换为你自己的推理逻辑,生成多列推理结果
    inference_results = []
    for input_data in mini_batch:
        pred_val = model.predict(input_data)
        confidence = model.predict_proba(input_data).max()
        category = f"class_{pred_val}"
        inference_results.append([pred_val, confidence, category])
    
    # 构造带表头的DataFrame
    output_df = pd.DataFrame(inference_results, columns=["prediction", "confidence", "category"])
    
    # 推荐返回字典列表,自动匹配多列结构
    return output_df.to_dict("records")

    # 若需要完全自定义CSV格式,可直接返回CSV字符串
    # return [output_df.to_csv(index=False, header=is_first_batch)]

2. 配置部署的输出规则

创建Batch部署时添加对应的环境变量,指定输出格式和表头开关:

from azure.ai.ml.entities import BatchDeployment

deployment = BatchDeployment(
    # 其他基础配置(模型、代码、计算资源等)按原有逻辑填写
    # 新增输出相关配置
    output_action="append_row",
    output_file_name="prediction_result.csv",
    environment_variables={
        "AZUREML_BI_OUTPUT_FORMAT": "csv",
        "AZUREML_BI_OUTPUT_HEADER": "true"
    }
)

异常排查

  • 输出仍有多余括号/引号:检查返回值是否存在多余嵌套结构,不要直接返回DataFrame.values.tolist()这类二维数组格式。
  • 表头不展示:确认AZUREML_BI_OUTPUT_HEADER参数设置为true,且仅在全局第一行返回表头,不要每个mini_batch都重复返回表头。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:09:02