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

如何将Azure Machine Learning中的MLTable转换为PySpark DataFrame?

将Azure ML数据资产转换为PySpark DataFrame

针对超1TB的大数据集无法用Pandas加载的问题,你可以通过以下两种方法将MLTable转换为PySpark DataFrame:

方法1:使用mltable库的to_spark_dataframe方法

如果你的mltable库版本支持(建议使用最新版),可直接调用内置方法完成转换,代码示例如下:

import mltable
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
from pyspark.sql import SparkSession

# 初始化Spark会话(若环境未自动配置)
spark = SparkSession.builder.appName("MLTableToSpark").getOrCreate()

# 连接Azure ML并获取目标数据资产
ml_client = MLClient.from_config(credential=DefaultAzureCredential())
data_asset = ml_client.data.get("data_asset_name", version="1")

# 加载MLTable并转换为PySpark DataFrame
tbl = mltable.load(data_asset.path)
spark_df = tbl.to_spark_dataframe()

# 验证转换结果
spark_df.show()

方法2:直接用Spark读取数据资产的底层存储路径

若mltable的Spark转换方法不可用,可直接通过Spark读取数据资产指向的存储位置。需先确认数据资产的存储格式(如Parquet、CSV等),再使用对应读取方法:

from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
from pyspark.sql import SparkSession

spark = SparkSession.builder.appName("DirectSparkLoad").getOrCreate()

ml_client = MLClient.from_config(credential=DefaultAzureCredential())
data_asset = ml_client.data.get("data_asset_name", version="1")

# 示例:读取Parquet格式数据(数据资产路径通常为abfss格式)
spark_df = spark.read.parquet(data_asset.path)

# 若为CSV格式,可改用:
# spark_df = spark.read.csv(data_asset.path, header=True, inferSchema=True)

# 验证结果
spark_df.show()

注意事项

  • 确保计算环境(Azure ML计算集群/实例)已安装pyspark、mltable等依赖。
  • 针对ADLS Gen2路径,Azure ML计算资源通常会自动继承工作区权限,无需额外配置访问凭证。
  • 处理超大数据集时,建议添加分区读取或过滤条件,避免全量加载引发性能问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 20:12:08