从Databricks写入Azure cosmos DB

时间:2020-06-11 19:43:51

标签: mongodb scala apache-spark azure-cosmosdb azure-databricks

我正在尝试将Spark中的数据(使用Databricks)写入Azure Cosmos DB(Mongo DB)。执行笔记本时没有错误,但查询集合时出现错误。

我使用了databricks网站azure-cosmosdb-spark_2.4.0_2.11-2.1.2-uber.jar中的jar。我的版本是6.5(包括Apache Spark 2.4.5,Scala 2.11)

import org.joda.time.format._
import com.microsoft.azure.cosmosdb.spark.schema._
import com.microsoft.azure.cosmosdb.spark.CosmosDBSpark
import com.microsoft.azure.cosmosdb.spark.config.Config
import org.apache.spark.sql.functions._
val configMap = Map(
  "Endpoint" -> "https://******.documents.azure.com:***/",
  "Masterkey" -> "****==",
  "Database" -> "dbname",
  "Collection" -> "collectionname"
  )
val config = Config(configMap)
val df = spark.sql("select id,name,address from emp_db.employee")
CosmosDBSpark.save(df, config)

当我查询集合时,我得到的答复低于

Error: error: {
    "_t" : "OKMongoResponse",
    "ok" : 0,
    "code" : 1,
    "errmsg" : "Unknown server error occurred when processing this request.",
    "$err" : "Unknown server error occurred when processing this request."
}

任何帮助将不胜感激。谢谢!!!

1 个答案:

答案 0 :(得分:0)

该错误表明您将CosmosDB与MongoDB api结合使用。

仅当使用SQL api时,CosmosDB的spark连接器才支持它。

相反,您应该使用MongoDB连接器。

https://docs.microsoft.com/en-us/azure/cosmos-db/spark-connector

改用https://docs.mongodb.com/spark-connector/master/