如何在Azure ML中注册Pandas DataFrame?原API已弃用
将Pandas DataFrame注册为Azure Machine Learning数据集的替代方案
原Dataset.Tabular.register_pandas_dataframe API已被弃用,根据错误提示,最佳替代方式是先将DataFrame导出为Parquet或CSV文件,再通过读取文件的方式注册AML数据集,以下是具体实现:
方法1:使用Parquet格式(推荐)
Parquet是列式存储格式,具备更高的压缩率和读取效率,还能保留DataFrame的原始数据类型,是首选方案。
步骤及代码示例:
- 将DataFrame保存为Parquet文件
- 上传文件到Azure ML数据存储
- 从数据存储中的Parquet文件创建并注册数据集
from azureml.core import Workspace, Dataset, Datastore import pandas as pd import tempfile import os # 初始化AML工作区 workspace = Workspace("<subscription_id>", "<resource_group>", "<workspace_name>") datastore = workspace.get_default_datastore() # 将DataFrame保存为临时Parquet文件 with tempfile.TemporaryDirectory() as temp_dir: parquet_path = os.path.join(temp_dir, "output_data.parquet") df.to_parquet(parquet_path, index=False) # 上传文件到数据存储 datastore.upload_files( files=[parquet_path], target_path="dataset_folder/", # 数据存储中的目标路径 overwrite=True ) # 从数据存储中的Parquet文件创建数据集并注册 parquet_dataset = Dataset.Tabular.from_parquet_files(path=(datastore, "dataset_folder/output_data.parquet")) registered_dataset = parquet_dataset.register( workspace=workspace, name="output_dataset_name", description="description", create_new_version=True # 可选:数据集已存在时创建新版本 )
方法2:使用CSV格式
如果需要兼容更多工具,也可以选择CSV格式,步骤类似:
from azureml.core import Workspace, Dataset, Datastore import pandas as pd import tempfile import os # 初始化AML工作区 workspace = Workspace("<subscription_id>", "<resource_group>", "<workspace_name>") datastore = workspace.get_default_datastore() # 将DataFrame保存为临时CSV文件 with tempfile.TemporaryDirectory() as temp_dir: csv_path = os.path.join(temp_dir, "output_data.csv") df.to_csv(csv_path, index=False, encoding="utf-8") # 上传文件到数据存储 datastore.upload_files( files=[csv_path], target_path="dataset_folder/", overwrite=True ) # 从数据存储中的CSV文件创建数据集并注册 csv_dataset = Dataset.Tabular.from_delimited_files(path=(datastore, "dataset_folder/output_data.csv")) registered_dataset = csv_dataset.register( workspace=workspace, name="output_dataset_name", description="description", create_new_version=True )
关键说明
- 可根据需求选择自定义数据存储(无需局限于默认的
get_default_datastore()) create_new_version=True参数用于避免覆盖已存在的数据集,自动创建新版本- 临时文件会在
TemporaryDirectory上下文结束后自动删除,无需手动清理
内容的提问来源于stack exchange,提问作者Irina
相关产品推荐
相关产品推荐

