使用Spark-CosmosDB连接器将Spark Dataframe写入CosmodbSQL Api时,无法在cosmodb中运行时创建新的数据库和集合

问题描述

我正在使用Apache Spark 2.3.2v。以下是我使用Apache Spark与CosmosDB一起执行的用例。 我正在使用 azure-cosmosdb-spark_2.3.0_2.11_1.3.3 连接器。

用例-我正在spark中执行一些复杂的聚合,并且我的数据在CosmosDB(sql)中。我想从Apache Spark数据框中的CosmosDB中读取数据,并执行一些复杂的聚合功能,然后写回CosmosDB中存储的新数据库和Collection中,这些新数据库将在运行时创建。

我能够成功地从CosmosDB中读取数据,并通过数据框执行了我的功能。 现在,我想写回CosmosDB,但要写在新的数据库和新的Collection中。

下面是我从CosmosDB读取数据的代码-

import com.microsoft.azure.cosmosdb.spark.schema._
import com.microsoft.azure.cosmosdb.spark._
import com.microsoft.azure.cosmosdb.spark.config.Config

val readConfig = Config(Map("Endpoint" -> "https://xyz.documents.azure.com:443/","Masterkey" -> "","Database" -> "Database1","PreferredRegions" -> "","Collection" -> "Collection1","SamplingRatio" -> "1.0"))

val flights = spark.read.cosmosDB(readConfig)
    flights.count()   // performed complex aggrgate functions

下面是写回CosmosDB(新数据库和集合)的代码-

val writeConfig = Config(Map(
    "Endpoint" -> "https://xyz.documents.azure.com:443/","Masterkey" ->"","Database" -> "Database2","Collection" -> "Collection2","WritingBatchSize" -> "100","Upsert" -> "true"))

   flights.write.mode(SaveMode.Overwrite).cosmosDB(writeConfig)

当我尝试提供不同的数据库和新的Collection名称(不在cosmosDb中创建)时,它总是在异常以下给我

Exception in thread "main" com.microsoft.azure.documentdb.DocumentClientException: Message:      {"Errors":["Resource Not Found. Learn more: https:\/\/aka.ms\/cosmosdb-tsg-not-found"]}

我查看了许多链接,但是所有链接都赋予数据库名称和集合名称相同的读写操作。 请让我知道是否需要任何输入。

查询-

  1. 我可以使用Spark-cosmos Db连接器通过Apache Spark在CosmosDB中创建数据库和集合吗?

请建议我任何解决方案。我是否需要构建与.NET SDK中相似的API

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)