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

如何在Microsoft Fabric中通过PySpark读取PBI语义模型表写入Warehouse?

在Microsoft Fabric PySpark笔记本中读取PBI语义模型并写入Warehouse

可以实现这个需求,Lakehouse和Warehouse的写入逻辑差异主要在于存储格式与访问方式——Lakehouse基于Delta Lake,而Warehouse依赖Fabric的SQL Endpoint关系型存储,以下是适配的具体方法和代码:

完整适配代码

读取PBI语义模型的逻辑你已经写对了,重点修改写入部分即可:

from pyspark.sql import SparkSession

# 初始化Spark会话(无需Delta相关配置,Warehouse不需要)
spark = SparkSession.builder \
    .appName("WarehouseIntegration") \
    .getOrCreate()

# 读取PBI语义模型表(复用你原有的逻辑)
df = spark.sql("SELECT * FROM pbi.`Financials_Test`.`financials`")

# 方法1:通过Fabric内置Warehouse Catalog写入(推荐,无需额外配置)
df.write.mode("overwrite") \
    .format("sqlserver") \
    .option("dbtable", "你的Warehouse名称.dbo.Fin")  # 替换为实际的Warehouse名和目标表名
    .save()

# 方法2:JDBC连接方式(适用于需要自定义参数的场景)
# df.write.mode("overwrite") \
#     .format("jdbc") \
#     .option("url", "jdbc:sqlserver://<你的SQL Endpoint地址>:1433;databaseName=<Warehouse名称>;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;") \
#     .option("dbtable", "dbo.Fin") \
#     .option("user", "<你的账号>") \
#     .option("password", "<你的密码>") \
#     .save()

注意事项

  • 权限检查:确保你的账号拥有PBI语义模型的读取权限,以及目标Warehouse的写入权限。
  • 字段类型兼容:PBI语义模型的字段类型需与Warehouse目标表匹配,不兼容时可通过df.withColumn("字段名", df["字段名"].cast("目标类型"))转换。
  • 写入模式:mode("overwrite")会覆盖整张表,若需追加数据可改为mode("append")。
  • Catalog识别:方法1依赖Fabric自动加载当前工作区内的Warehouse,确保目标Warehouse在同一工作区。

内容的提问来源于stack exchange,提问作者ej sundar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 23:41:09