如何将Azure DataBricks中SQL查询结果转换为Pandas DataFrame
Azure Databricks SQL查询转Pandas DataFrame 实现方案
场景1:在Azure Databricks Notebook内运行
你可以直接利用Databricks内置的PySpark能力封装调用,完全符合你要的调用逻辑:
- 最简写法
# 执行SQL后直接转成Pandas DataFrame data = spark.sql("select * from table").toPandas()
- 封装成你要的调用形式
def select(sql_stmt): return spark.sql(sql_stmt).toPandas() # 调用效果完全匹配你的需求 data = select("select * from table")
场景2:外部环境通过Databricks URL远程访问
如果是在Databricks以外的环境访问,需要用官方SQL连接器实现:
- 第一步:安装依赖
pip install databricks-sql-connector pandas - 第二步:封装调用函数,替换成你自己的Databricks连接参数即可
from databricks import sql import pandas as pd # 替换为你的实际配置 DATABRICKS_HOST = "你的工作区域名(去掉https://前缀)" ACCESS_TOKEN = "你的Databricks个人访问令牌" SQL_WAREHOUSE_HTTP_PATH = "SQL仓库的HTTP路径" USE_CATALOG = "目标catalog名称" USE_SCHEMA = "目标schema名称" def select(sql_stmt): with sql.connect( server_hostname=DATABRICKS_HOST, http_path=SQL_WAREHOUSE_HTTP_PATH, access_token=ACCESS_TOKEN, catalog=USE_CATALOG, schema=USE_SCHEMA ) as conn: return pd.read_sql(sql_stmt, conn) # 直接执行获取Pandas DataFrame data = select("select * from table")
注意:如果查询结果数据量较大,建议先在SQL侧做过滤、聚合处理后再拉取到本地,避免内存不足。
内容的提问来源于stack exchange,提问作者Lama énervé
相关产品推荐
相关产品推荐

