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

在Azure Databricks中如何基于JSON配置动态创建Delta表?

从ADLS读取JSON配置动态创建Delta表的实现方案

步骤1:读取ADLS中的JSON配置文件

在Azure Databricks Python笔记本中,读取存储在ADLS的tableConfig.json配置文件并解析为Python字典,用于后续动态生成SQL语句。

import json

# 替换为你的tableConfig.json实际路径(挂载路径或ABFSS路径)
config_file_path = "/mnt/clean/tableConfig.json"

# 读取并解析JSON配置
with open(config_file_path, "r") as config_file:
    table_config = json.load(config_file)

步骤2:动态生成CREATE TABLE SQL语句

提取配置中的数据库名、表名、存储位置和列列表,结合Delta表语法生成可执行的SQL语句。注意:原JSON仅提供列名,实际创建表需指定数据类型,这里默认使用STRING类型,也可扩展JSON结构支持自定义类型。

# 提取配置字段
database_name = table_config["databaseName"]
table_name = table_config["tableName"]
table_location = table_config["location"]
columns = table_config["colsList"]

# 生成SQL列定义(默认STRING类型,可按需修改)
column_definitions = ", ".join([f"{col} STRING" for col in columns])

# 拼接完整的CREATE TABLE语句
create_table_sql = f"""
CREATE TABLE {database_name}.{table_name}
({column_definitions})
USING delta
LOCATION '{table_location}'
"""

步骤3:执行SQL创建Delta表

通过Spark SQL执行生成的语句,完成Delta表的创建,可选验证步骤确认结果。

# 确保目标数据库存在(若数据库未创建,先执行此句)
spark.sql(f"CREATE DATABASE IF NOT EXISTS {database_name}")

# 执行创建表的SQL
spark.sql(create_table_sql)

# 验证表创建成功
print(f"Delta表 {database_name}.{table_name} 已创建完成,存储位置:{table_location}")

扩展说明

如果需要自定义列的数据类型,可修改tableConfig.json的结构为包含列名和类型的字典列表:

{
 "tableName":"employee",
 "databaseName": "dbo",
 "location" : "/mnt/clean/demo",
 "colsList" : [
     {"name":"emp_id","type":"INT"},
     {"name":"emp_name","type":"STRING"},
     {"name":"emp_city","type":"STRING"}
 ]
}

对应的列定义代码修改为:

column_definitions = ", ".join([f"{col['name']} {col['type']}" for col in columns])

内容的提问来源于stack exchange,提问作者Surender Raja

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 10:26:03