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

从Databricks连接Cosmos DB报错:Catalog 'cosmoscatalog'未找到

问题描述

我已完全遵循文档操作,尝试从Databricks连接Cosmos DB以写入数据。Databricks集群运行时版本为11.3 LTS,已安装Cosmos DB Spark连接器:com.azure.cosmos.spark:azure-cosmos-spark_3-3_2-12:4.15.0。配置代码如下:

cosmosEndpoint = "MyEndpoint"  
cosmosMasterKey = "MyMasterKey"  
cosmosDatabaseName = "SampleDB"  
cosmosContainerName = "testContainer"

#Configure Catalog Api to be used
spark.conf.set("spark.sql.catalog.cosmosCatalog", "com.azure.cosmos.spark.CosmosCatalog") 
spark.conf.set("spark.sql.catalog.cosmosCatalog.spark.cosmos.accountEndpoint", cosmosEndpoint) 
spark.conf.set("spark.sql.catalog.cosmosCatalog.spark.cosmos.accountKey", cosmosMasterKey)

#create an Azure Cosmos DB database using catalog api
spark.sql("CREATE DATABASE IF NOT EXISTS cosmosCatalog.{};".format(cosmosDatabaseName))

#create an Azure Cosmos DB container using catalog api
spark.sql("CREATE TABLE IF NOT EXISTS cosmosCatalog.{}.{} using cosmos.oltp TBLPROPERTIES(partitionKeyPath = '/id', manualThroughput = '1100')".format(cosmosDatabaseName, cosmosContainerName))

执行时出现错误:AnalysisException: Catalog 'cosmoscatalog' not found,请问该错误产生的原因是什么?

错误原因分析
  • 标识符大小写敏感问题:Spark SQL默认对catalog名称大小写敏感,你配置的catalog名称是驼峰式的cosmosCatalog,但报错中显示的是全小写的cosmoscatalog。部分Databricks环境会自动将SQL中的标识符转换为小写,导致无法匹配驼峰命名的catalog。可以尝试将配置中的catalog名称改为全小写cosmoscatalog,或者在SQL中用反引号包裹cosmosCatalog来保留大小写,比如CREATE DATABASE IF NOT EXISTS cosmosCatalog.${databaseName}。

  • 配置未及时生效:spark.conf.set设置的catalog配置需要在Spark会话初始化阶段加载。如果是在Notebook运行过程中动态设置这些配置,可能无法正确初始化CosmosCatalog类,导致catalog未被注册。建议将这些配置添加到集群的Spark配置中(集群启动时设置),或者重启Notebook会话后再执行代码。

  • 连接器类加载异常:尽管azure-cosmos-spark_3-3_2-12:4.15.0理论上适配Spark 3.3.x(对应Databricks 11.3 LTS),但如果安装过程中出现依赖缺失或类加载失败,会导致CosmosCatalog无法被实例化。可以查看集群日志,确认是否存在类找不到的报错信息。

  • 配置参数拼写错误:核对spark.sql.catalog.cosmosCatalog对应的类路径com.azure.cosmos.spark.CosmosCatalog是否正确,确保没有拼写错误(比如包名或类名写错),否则Spark无法找到对应的Catalog实现类完成注册。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 13:30:47