OutputFileDatasetConfig无read_json_lines_files()如何实现等效操作
问题原因说明
read_json_lines_files()是FileDataset类的专属方法,OutputFileDatasetConfig仅作为流水线输出的配置对象,本身不提供数据集读取相关的API,所以原写法无法生效。你可以通过以下两种方案实现需求:
方案1:先注册为文件数据集,流水线运行完成后手动转换
- 第一步:直接注册流水线输出为文件数据集
# 直接调用register_on_complete注册输出的文件数据集 output_file_dataset_config.register_on_complete(name="foo", description="原始JSONL标签文件")
- 第二步:流水线运行完成后,加载注册好的文件数据集并转换为JSONL格式
from azureml.core import Dataset, Workspace ws = Workspace.from_config() # 读取已注册的文件数据集 raw_file_ds = Dataset.get_by_name(ws, name="foo") # 调用方法解析JSONL格式 jsonl_ds = raw_file_ds.read_json_lines_files() # 可选:将解析后的JSONL数据集单独注册留存 jsonl_ds.register( workspace=ws, name="foo_parsed", create_new_version=True )
方案2:新增流水线后置步骤,自动完成JSONL格式解析与注册
如果需要流水线运行结束后自动得到解析好的JSONL数据集,可以新增一个处理步骤:
- 将前序步骤的
OutputFileDatasetConfig作为本步骤的输入 - 在步骤逻辑中完成数据集读取、解析、注册操作,示例代码如下:
# 流水线步骤内的执行逻辑 from azureml.core import Dataset, Run run = Run.get_context() ws = run.experiment.workspace # 读取输入的JSONL文件路径 input_jsonl_path = run.input_datasets["raw_jsonl_output"] # 直接读取为JSONL数据集 jsonl_ds = Dataset.File.from_files(path=input_jsonl_path).read_json_lines_files() # 注册数据集 jsonl_ds.register( workspace=ws, name="foo", create_new_version=True )
内容的提问来源于stack exchange,提问作者Francois
相关产品推荐
相关产品推荐

