Azure ML Python SDK v2如何直接从DataFrame注册数据资产?
升级Azure ML Python SDK v2:从DataFrame直接注册数据资产的方案
我正准备升级至Azure ML Python SDK v2,但无法实现v1中直接从DataFrame注册数据集(现称为数据资产)的功能,目前似乎只能从本地或ADLS的已保存文件创建数据资产。
v1中的实现方式
在SDK v1中,我使用Dataset.Tabular.register_pandas_dataframe方法直接注册DataFrame:
from azureml.core import Dataset dataset = Dataset.Tabular.register_pandas_dataframe( dataframe=dataframe, target=target, name=name, )
查阅的官方文档内容
我查阅了以下官方文档:
- 「创建表类型的数据资产」
- 「创建表格数据集/数据资产」
核心疑问
是否存在无需在本地存储Parquet文件即可注册数据资产的方法?
尝试的变通方案及问题
我曾考虑将Parquet文件写入ADLS再创建数据资产,但未找到明确文档指引。尝试上传Parquet文件的代码如下:
adls_url = f"https://{account_name}.blob.core.windows.net" # 连接Azure Blob服务 blob_service_client = BlobServiceClient( account_url=adls_url, credential=credential ) container_client = blob_service_client.get_container_client( container_name ) # 准备待保存的数据 data = pd.DataFrame.to_parquet(df) # 将DataFrame上传至ADLS container_client.upload_blob( output_path, data, overwrite=True, encoding='utf-8' )
上传CSV文件可以成功,但上传Parquet时出现错误:ResourceExistsError: The requested operation is not allowed in the current state of the entity。而且这种方法终究只是一种变通手段。
备选方案:混用v1和v2 SDK
我考虑过作为最后手段继续使用azureml.core.Dataset,虽然官方不推荐同时使用v1和v2,但SDK存在向后兼容性。
内容的提问来源于stack exchange,提问作者Vanaclocha
相关产品推荐
相关产品推荐

