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

在Azure ML Studio的Jupyter Notebook中将数据写入Datastore示例求助

将处理好的数据写回ADLS Gen2连接的Datastore(Azure ML Studio Notebook示例)

以下是两种常用的写入方式,根据你的数据规模和使用框架选择:

方式一:使用Pandas写入(适合中小数据量)

1. 连接工作区并获取目标Datastore

from azureml.core import Workspace, Datastore

# 加载当前工作区(Studio Notebook中可直接调用该方法)
ws = Workspace.from_config()

# 替换为你已连接ADLS Gen2的Datastore名称
target_datastore = Datastore.get(ws, datastore_name="your_adls_gen2_datastore")

2. 写入处理好的DataFrame

假设你已完成数据准备,得到processed_df这个Pandas DataFrame,以下是写入Parquet格式的示例(比CSV存储效率更高):

import pandas as pd

# 示例DataFrame,替换为你实际的处理后数据
processed_df = pd.DataFrame({
    "id": [101, 102, 103],
    "value": [25.6, 30.1, 18.9]
})

# 临时保存到本地(可选,也可直接用dataprep写入)
temp_file = "./temp_processed.parquet"
processed_df.to_parquet(temp_file, index=False)

# 上传到Datastore的指定路径,替换为你的目标存储路径
target_datastore.upload_files(
    files=[temp_file],
    target_path="processed_data/20240520/",
    overwrite=True,
    show_progress=True
)

# 更高效的直接写入方式(需安装azureml-dataprep[pandas])
from azureml.dataprep import api as dprep

dataflow = dprep.read_pandas_dataframe(processed_df)
dataflow.write_to_parquet(
    destination=target_datastore.path("processed_data/20240520/final_data.parquet"),
    overwrite=True
)

方式二:使用Spark写入(适合大数据量)

1. 初始化Spark会话并获取Datastore

from azureml.core import Workspace, Datastore
from pyspark.sql import SparkSession

ws = Workspace.from_config()
target_datastore = Datastore.get(ws, datastore_name="your_adls_gen2_datastore")

# 获取Studio内置的Spark会话
spark = SparkSession.builder.getOrCreate()

# 示例Spark DataFrame,替换为你实际的处理后数据
spark_df = spark.createDataFrame([(101,25.6),(102,30.1),(103,18.9)], ["id","value"])

2. 写入ADLS Gen2路径

利用ADLS Gen2的ABFS协议直接写入,示例如下:

# 获取Datastore的ABFS格式路径
abfs_base_path = f"abfss://{target_datastore.container_name}@{target_datastore.account_name}.dfs.core.windows.net/"

# 写入Parquet文件,设置保存模式为覆盖(可选append/ignore等)
spark_df.write.mode("overwrite").parquet(f"{abfs_base_path}processed_data/20240520/")

注意事项

  • 确保你的计算实例拥有ADLS Gen2的访问权限(可通过RBAC角色分配或服务主体配置)
  • 写入Parquet时保持数据类型一致,避免后续读取异常
  • 大数据量场景优先使用Spark,避免内存溢出

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 03:10:48