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

Databricks Unity集群PySpark连接MongoDB Atlas新版本连接器报错

问题分析与解决方案

错误根源

Mongo Spark Connector 10.x版本(如org.mongodb.spark:mongo-spark-connector_2.12:10.2.1)默认采用Spark Data Source V2 API实现,但启用Unity Catalog的Databricks Runtime 13.3暂不支持该API,因此触发[UC_COMMAND_NOT_SUPPORTED.WITHOUT_RECOMMENDATION]错误。虽然能读取表结构,但后续数据读写操作可能出现异常。

旧版本连接器(如3.0.1)基于Data Source V1开发,因此能与当前环境兼容。

解决方案

方案1:强制使用Data Source V1模式(无需降级连接器)

在Spark会话配置中添加参数,强制新版本连接器切换到V1模式:

from pyspark.sql import SparkSession

spark = SparkSession.builder \
    .appName("MongoDB-UC-Connection") \
    .config("spark.mongodb.uri", "mongodb+srv://<your-username>:<your-password>@<cluster-address>.mongodb.net/") \
    .config("spark.mongodb.database", "target-db") \
    .config("spark.mongodb.collection", "target-collection") \
    # 强制启用V1数据源
    .config("spark.mongodb.read.useDataSourceV1", "true") \
    .config("spark.mongodb.write.useDataSourceV1", "true") \
    .getOrCreate()

# 读取数据验证
df = spark.read.format("mongodb").load()
df.printSchema()

方案2:保持使用兼容的旧版本连接器

继续使用org.mongodb.spark:mongo-spark-connector_2.12:3.0.1,该版本基于Data Source V1开发,与Unity Catalog在Runtime 13.3下完全兼容。

方案3:升级Databricks Runtime版本

Databricks后续版本(如14.x及以上)已逐步完善Unity Catalog对Data Source V2的支持,可尝试升级集群Runtime版本,直接使用新版本连接器的V2特性。

注意事项

  • 强制V1模式后,新版本连接器的部分高级特性(如流式读写优化、特定数据类型映射)可能无法使用,需根据业务需求权衡。
  • 升级Runtime前需验证业务代码与新版本的兼容性,避免出现其他适配问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 05:58:18