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

Azure Databricks配置Iceberg时遭遇[DATA_SOURCE_NOT_FOUND]错误的求助

Azure Databricks配置Iceberg时遭遇[DATA_SOURCE_NOT_FOUND]错误的求助

嘿,我看你在Azure Databricks个人集群上搭建Iceberg的时候碰到了数据源找不到的问题,这坑我之前也踩过,给你梳理下几个关键排查点和解决办法:

首先,版本不匹配大概率是核心问题!你用的Databricks Runtime 16.3对应的Scala版本是2.12,但你安装的Iceberg jar是iceberg-spark-runtime-3.5_2.13-1.9.0.jar——Scala 2.13的包在2.12的环境里根本没法正常加载。赶紧换成对应Scala 2.12的版本,比如iceberg-spark-runtime-3.5_2.12-1.9.0.jar;如果用Maven坐标的话,要明确指定Scala版本:org.apache.iceberg:iceberg-spark-runtime-3.5_2.12:1.9.0。

然后,你的Spark初始化配置缺了关键参数,Iceberg没法正常注册成数据源:

  • 必须添加spark.sql.extensions来注册Iceberg的扩展:spark.sql.extensions = org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions
  • 如果用ABFSS作为仓库路径,还得配置存储账户的访问密钥,不然集群连不上你的ADLS Gen2:spark.hadoop.fs.azure.account.key.<你的存储账户名>.dfs.core.windows.net = <你的存储密钥>

另外给你几个小细节提醒:

  • 单节点集群的spark.master设成local[*]就够了,不用额外加,4,不过这个不是导致当前错误的原因
  • 你写表用的是catalogname.schema.tablename,但你的配置里把spark_catalog设成了Iceberg的Hadoop catalog,所以如果你的catalog名就是spark_catalog,写表路径得改成spark_catalog.schema.tablename,不过先解决数据源加载的问题再说

还有个验证方法:重启集群后,运行spark.sql("SHOW DATA SOURCES"),看看结果里有没有iceberg。如果没有,说明jar包确实没加载成功,那优先确认版本匹配,重新安装对应版本的Iceberg包,一定要重启集群,不然新安装的库不会生效。

最后给你一个完整的Spark初始化脚本参考:

spark.sql.catalog.spark_catalog = org.apache.iceberg.spark.SparkCatalog
spark.sql.catalog.spark_catalog.type = hadoop
spark.sql.catalog.spark_catalog.warehouse = abfss://container@storageaccount.dfs.core.windows.net/
spark.sql.extensions = org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions
spark.hadoop.fs.azure.account.key.storageaccount.dfs.core.windows.net = <你的存储账户密钥>
spark.databricks.cluster.profile = singleNode

按照上面的步骤调整后,应该能解决这个[DATA_SOURCE_NOT_FOUND]的错误,如果还有问题,可以去集群的“库”页面检查下Iceberg的jar是不是真的被成功安装并加载了。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 11:18:15