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

通过Notebook从Azure Synapse加载数据至DataFrame报sqlanalytics属性错误

错误原因

你遇到的报错是因为PySpark的DataFrameReader原生没有sqlanalytics方法,这个方法是旧版Azure Synapse Spark连接器提供的专属API,触发报错的常见原因有两个:

  1. 当前Spark环境没有安装Azure Synapse专属连接器依赖包
  2. 新版Synapse连接器已经将该API重命名为synapsesql,沿用旧写法导致调用失败
解决方案
  • 如果你在Azure Synapse工作区的内置Spark池中运行代码:
    直接将原代码中的sqlanalytics替换为synapsesql即可,示例写法:

    # 读取Synapse专用池表数据到DataFrame
    df = spark.read.synapsesql("<数据库名称>.<Schema名称>.<表名>")
    

    该环境默认预装了最新版Synapse连接器,不需要额外配置依赖。

  • 如果你在非Synapse工作区的Spark环境(本地Spark、第三方Spark服务等)运行代码:
    第一步先在Spark配置中添加对应版本的Synapse连接器Maven依赖,参考依赖坐标为com.microsoft.azure:synapse-analytics-spark:3.1.0_2.12:1.0.0,需要和你使用的Spark、Scala版本匹配。
    第二步配置好ADLS Gen2存储访问凭据、Synapse实例身份认证信息后,即可调用对应API读取数据。

  • 临时替代方案:使用通用JDBC方式读取,不需要安装专属连接器,示例代码:

    jdbcConnectionStr = "jdbc:sqlserver://<你的Synapse服务器名>.sql.azuresynapse.net:1433;database=<数据库名>;user=<登录用户名>;password=<登录密码>;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.sql.azuresynapse.net;loginTimeout=30;"
    df = spark.read.format("jdbc") \
        .option("url", jdbcConnectionStr) \
        .option("dbtable", "<Schema名>.<目标表名>") \
        .load()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 05:06:04