Azure ML笔记本中能否对数据资产执行DQL查询操作?
在Azure ML Notebook中查询Parquet格式的Azure数据资产(支持DQL操作)
当然可以在Azure ML Notebook中对Parquet格式的数据资产执行DQL查询,以下是两种实用方案:
方法1:使用Spark SQL(推荐大数据量场景)
Parquet格式天然适配Spark,Azure ML Notebook支持Spark运行环境,适合处理大规模数据:
加载数据资产并创建临时视图:
from azureml.core import Workspace, Dataset # 加载工作区配置 ws = Workspace.from_config() # 根据名称获取目标数据资产 data_asset = Dataset.get_by_name(ws, name="你的数据资产名称") # 获取Parquet文件存储路径 parquet_path = data_asset.path # 加载数据到Spark DataFrame df = spark.read.parquet(parquet_path) # 创建临时视图,用于SQL查询 df.createOrReplaceTempView("parquet_dataset")执行DQL查询:
# 编写标准SQL查询语句 query_result = spark.sql("SELECT * FROM parquet_dataset WHERE 你的过滤条件") # 查看查询结果 query_result.show() # 可选:转换为Pandas DataFrame做后续处理 result_pd = query_result.toPandas()
方法2:使用Pandas + PandasQL(小数据量场景)
如果数据量较小,可将数据加载到Pandas DataFrame后,用pandasql执行SQL查询:
安装依赖并加载数据:
# 首次运行安装pandasql !pip install pandasql from azureml.core import Workspace, Dataset import pandas as pd from pandasql import sqldf # 加载数据资产到Pandas DataFrame ws = Workspace.from_config() data_asset = Dataset.get_by_name(ws, name="你的数据资产名称") df = data_asset.to_pandas_dataframe() # 定义查询函数 pysqldf = lambda q: sqldf(q, globals())执行DQL查询:
# 编写SQL查询 result = pysqldf("SELECT column1, column2 FROM df WHERE column3 > 50") # 打印结果 print(result)
关键注意事项
- 大数据量优先选Spark SQL:Spark支持分布式计算,处理大规模Parquet数据时性能远优于Pandas
- 权限验证:确保Notebook所在计算实例拥有Azure Blob Storage的访问权限(可通过Datastore权限或托管标识配置)
- 资源匹配:根据数据量选择合适的计算实例规格,避免内存不足问题
内容的提问来源于stack exchange,提问作者Chandrabhanu
相关产品推荐
相关产品推荐

