Apache spark 使用Spark CosmosDB连接器将Spark Dataframe写入CosmosDB(SQL Api)时,无法在运行时在CosmosDB中创建新数据库和集合

Apache spark 使用Spark CosmosDB连接器将Spark Dataframe写入CosmosDB(SQL Api)时,无法在运行时在CosmosDB中创建新数据库和集合,apache-spark,azure-cosmosdb,azure-cosmosdb-sqlapi,Apache Spark,Azure Cosmosdb,Azure Cosmosdb Sqlapi,我使用的是ApacheSpark2.3.2v。下面是我使用ApacheSpark使用CosmosDB执行的用例。 我正在使用azure-cosmosdb-spark_2.3.0_2.11_1.3.3连接器 用例-我正在spark中执行一些复杂的聚合,我的数据在CosmosDB(SQL)中。我想在ApacheSpark数据帧中读取CosmosDB中的数据,并执行一些复杂的聚合功能,然后将数据写回CosmosDB,存储在新的数据库和集合中,该数据库和集合将在运行时创建 我能够成功地从CosmosDB

我使用的是ApacheSpark2.3.2v。下面是我使用ApacheSpark使用CosmosDB执行的用例。 我正在使用azure-cosmosdb-spark_2.3.0_2.11_1.3.3连接器

用例-我正在spark中执行一些复杂的聚合,我的数据在CosmosDB(SQL)中。我想在ApacheSpark数据帧中读取CosmosDB中的数据,并执行一些复杂的聚合功能,然后将数据写回CosmosDB,存储在新的数据库和集合中,该数据库和集合将在运行时创建

我能够成功地从CosmosDB读取数据,并使用数据帧执行我的功能。 现在我想写回CosmosDB,但在新数据库和新集合中

下面是我从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(新数据库和集合)的代码-

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

Exception in thread "main" com.microsoft.azure.documentdb.DocumentClientException: Message:      {"Errors":["Resource Not Found. Learn more: https:\/\/aka.ms\/cosmosdb-tsg-not-found"]}
我查看了许多链接,但都给出了相同的数据库名称和集合名称来执行读写操作。 如果您需要任何信息,请告诉我

质疑-

  • 我可以使用spark cosmos Db connector通过Apache spark在CosmosDB中创建数据库和集合吗

  • 请给我建议解决办法。我是否需要构建一个与.NET SDK中的API类似的API

    您是否使用只读密钥而不是读写密钥?您能检查并确认吗?我正在使用读写键。我尝试了主键和辅键。但每当我在代码中给数据库中的一个新容器名时,它都会给我提到的异常。
    Exception in thread "main" com.microsoft.azure.documentdb.DocumentClientException: Message:      {"Errors":["Resource Not Found. Learn more: https:\/\/aka.ms\/cosmosdb-tsg-not-found"]}