如何在Azure Databricks中创建REST API发布Delta表数据?
在Azure Databricks中发布Delta表数据的API方案
关于是否存在直接暴露Delta表的REST API
是的,Databricks官方并没有提供直接用于暴露Delta表内容的专用REST API,你需要通过组合现有功能来实现需求。
创建展示Delta表信息的REST API的方法
方法1:利用Databricks REST API + 笔记本任务
- 编写Databricks笔记本,读取Delta表并输出结构化结果
import pyspark.sql.functions as F import json # 读取指定路径的Delta表 delta_df = spark.read.format("delta").load("/path/to/your/delta/table") # 限制返回数据量(根据需求调整),转换为JSON格式输出 result_json = delta_df.limit(100).toPandas().to_json(orient="records") print(result_json) - 通过Databricks REST API的
jobs/runs/submit端点触发该笔记本运行 - 从任务执行结果的日志或输出中提取Delta表的JSON数据,返回给调用方
方法2:使用Databricks Model Serving部署API
- 封装Delta表读取逻辑为可部署的函数
import mlflow from pyspark.sql import SparkSession def fetch_delta_data(): spark = SparkSession.builder.getOrCreate() delta_df = spark.read.format("delta").load("/path/to/your/delta/table") return delta_df.limit(100).toPandas().to_dict(orient="records") # 将函数保存为MLflow模型(作为API载体) mlflow.pyfunc.save_model( path="/dbfs/mlflow/delta-data-api", python_model=fetch_delta_data ) - 在Databricks控制台中将该模型部署为Model Serving端点
- 调用Model Serving提供的REST API地址,即可获取Delta表数据
方法3:在Databricks集群部署自定义Web服务
- 编写FastAPI/Flask服务代码
from fastapi import FastAPI from pyspark.sql import SparkSession import uvicorn app = FastAPI() spark = SparkSession.builder.getOrCreate() @app.get("/delta-data") def get_delta_table_data(): delta_df = spark.read.format("delta").load("/path/to/your/delta/table") return delta_df.limit(100).toPandas().to_dict(orient="records") if __name__ == "__main__": uvicorn.run(app, host="0.0.0.0", port=8000) - 在Databricks集群上运行该服务,并配置端口转发允许外部访问
- 用户通过访问
http://<cluster-access-ip>:8000/delta-data获取数据
注意事项
- 针对大数据量场景,需添加分页、过滤参数避免一次性返回过多数据
- 配置API的身份验证,使用Databricks个人访问令牌或OAuth2机制控制访问权限
内容的提问来源于stack exchange,提问作者Saswat Ray
相关产品推荐
相关产品推荐

