如何从Azure Synapse Spark池将数据导入Azure Machine Learning
从Azure Synapse Spark池加载x架构表格到Azure ML的方法
方法一:通过Azure ML Studio可视化创建数据集
- 登录Azure ML Studio,进入目标工作区
- 左侧导航栏选择「数据」,点击「创建」,选择「从Azure Synapse Analytics」
- 在配置页中,选择已关联的Synapse工作区,指定对应的Spark池,然后选择架构
x和目标表格 - 设置数据集名称、描述,选择存储格式(推荐Parquet),完成创建后即可在ML工作区中直接调用该数据集
方法二:在Synapse Spark Notebook中代码上传至Azure ML
- 打开Synapse Studio,进入已关联的Spark池,新建Notebook
- 读取Synapse中
x架构的目标表格:df = spark.sql("SELECT * FROM x.你的表名") - 安装Azure ML Python SDK(若未预装):
%pip install azureml-core azureml-dataset-runtime - 连接到Azure ML工作区:
from azureml.core import Workspace # 若已在Synapse中配置ML工作区关联,可直接用from_config;否则手动指定参数 ws = Workspace.from_config() # 手动指定示例:ws = Workspace(subscription_id="你的订阅ID", resource_group="资源组名", workspace_name="ML工作区名") - 将Spark DataFrame注册为Azure ML数据集:
from azureml.core import Dataset from azureml.data.datapath import DataPath # 先将数据写入共享存储(如ADLS Gen2,需确保Synapse和ML有权限访问) df.write.mode("overwrite").parquet("abfss://<容器名>@<存储账户名>.dfs.core.windows.net/temp/x_table_data") # 从存储创建ML数据集并注册 datastore = ws.get_default_datastore() dataset = Dataset.Tabular.from_parquet_files(path=[(datastore, "temp/x_table_data")]) dataset.register(ws, name="x_table_dataset", description="来自Synapse x架构的表格数据")
方法三:在Azure ML计算实例中直接读取Synapse数据
- 在Azure ML Studio中启动计算实例,打开Notebook
- 安装依赖库:
%pip install pyspark azure-synapse-spark - 配置Spark会话连接到Synapse Spark池:
from pyspark.sql import SparkSession spark = SparkSession.builder \ .appName("Read Synapse Data") \ .config("spark.sql.catalog.synapse", "com.microsoft.azure.synapse.ml.catalog.SynapseCatalog") \ .config("spark.sql.catalog.synapse.url", "https://<你的Synapse工作区名>.dev.azuresynapse.net") \ .getOrCreate() # 读取x架构下的目标表格 df = spark.sql("SELECT * FROM synapse.x.你的表名") - 读取后的DataFrame可直接用于ML训练,或注册为ML数据集
注意事项
- 确保Synapse与ML工作区已正确配置权限,如Spark池对共享存储的读写权限、ML工作区对Synapse的访问权限
- 若使用共享存储,优先选择ADLS Gen2,避免数据迁移开销
内容的提问来源于stack exchange,提问作者vertigo
相关产品推荐
相关产品推荐

