如何解决使用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"]}
我查看了许多链接,但是所有链接都赋予数据库名称和集合名称相同的读写操作。 请让我知道是否需要任何输入。
查询-
- 我可以使用Spark-cosmos Db连接器通过Apache Spark在CosmosDB中创建数据库和集合吗?
请建议我任何解决方案。我是否需要构建与.NET SDK中相似的API
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。