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

指定自定义日期路径注册Pandas DataFrame至Azure Blob Storage遇错求解

解决Azure ML注册Pandas DataFrame到指定日期路径的问题

你遇到的make_target_path_unique参数报错,是因为register_pandas_dataframe()方法根本没有这个参数。要实现按日期指定存储路径且不生成随机路径,需要手动控制数据存储位置,再从该路径注册数据集,步骤如下:

步骤1:准备工作与路径构造

先加载Azure ML工作区,构造当日日期格式的目标路径:

import pandas as pd
from datetime import datetime
from azureml.core import Workspace, Dataset, Datastore

# 加载工作区(默认读取config.json)
ws = Workspace.from_config()
# 指定目标数据存储(这里用默认存储,可替换为你的自定义存储名称)
datastore = ws.get_default_datastore()

# 构造当日日期路径,格式可自定义(比如%Y%m%d或%Y-%m-%d)
current_date = datetime.now().strftime("%Y-%m-%d")
target_blob_dir = f"data/{current_date}"

步骤2:将DataFrame写入指定Blob路径

有两种可靠的写入方式,选其一即可:

方式一:直接写入ABFS路径(需配置存储访问权限)

直接用Pandas将数据写入Azure Blob的ABFS路径,无需本地临时文件:

# 构造完整ABFS路径
abfs_full_path = f"abfss://{datastore.container_name}@{datastore.account_name}.dfs.core.windows.net/{target_blob_dir}/data.parquet"
# 写入Parquet格式(比CSV更高效,支持schema保留)
df.to_parquet(abfs_full_path, overwrite=True)

方式二:本地临时文件上传(兼容性更强)

先将DataFrame保存到本地临时文件,再上传到指定Blob路径:

import tempfile
import os

# 临时保存DataFrame为Parquet文件
with tempfile.NamedTemporaryFile(mode='w+b', suffix='.parquet', delete=False) as tmp_file:
    df.to_parquet(tmp_file)

# 上传到Blob的指定日期目录,覆盖已有文件
datastore.upload_files(
    files=[tmp_file.name],
    target_path=target_blob_dir,
    overwrite=True,
    show_progress=True
)

# 删除本地临时文件
os.unlink(tmp_file.name)

步骤3:从指定路径注册数据集新版本

基于已写入的Blob路径创建Tabular数据集,并注册为新版本:

# 创建数据集路径引用
dataset_path = [(datastore, target_blob_dir)]
# 从Parquet文件创建Tabular数据集(如果用CSV,换成from_csv_files)
tabular_dataset = Dataset.Tabular.from_parquet_files(path=dataset_path)

# 注册数据集,自动生成新版本
tabular_dataset.register(
    workspace=ws,
    name="你的数据集名称",
    description=f"数据集更新于{current_date}",
    create_new_version=True
)

关键注意事项

  • 若使用CSV格式,需将代码中的parquet替换为csv(如to_csv、from_csv_files)。
  • overwrite=True会覆盖当日路径下的已有文件,若需保留当日多次更新的历史,可在路径中添加小时/分钟维度(比如data/{current_date}/{current_hour})。
  • 确保使用的DataStore拥有Blob存储的读写权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 08:35:01