我使用的是apachespark2.3.2v。下面是我使用apachespark执行cosmosdb的用例。我使用的是azure-cosmosdb-spark\ 2.3.0\ 2.11\ 1.3.3连接器。
用例-我正在spark中执行一些复杂的聚合,我的数据在cosmosdb(sql)中。我想在apachesparkDataframe中读取cosmosdb中的数据,执行一些复杂的聚合函数,然后写回cosmosdb,存储在新的数据库和集合中,这些数据库和集合将在运行时创建。
我能够成功地从cosmosdb读取数据,并使用Dataframe执行我的功能。现在我想写回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(新数据库和集合)的代码-
val writeConfig = Config(Map(
"Endpoint" -> "https://xyz.documents.azure.com:443/",
"Masterkey" ->"",
"Database" -> "Database2",
"PreferredRegions" -> "",
"Collection" -> "Collection2",
"WritingBatchSize" -> "100",
"Upsert" -> "true"))
flights.write.mode(SaveMode.Overwrite).cosmosDB(writeConfig)
当我尝试给不同的数据库和新集合命名(不是在cosmosdb中创建的)时,它总是给我以下的异常
Exception in thread "main" com.microsoft.azure.documentdb.DocumentClientException: Message: {"Errors":["Resource Not Found. Learn more: https:\/\/aka.ms\/cosmosdb-tsg-not-found"]}
我查看了许多链接,但都给出了数据库名称和集合名称相同的读写操作。请让我知道如果你需要任何投入。
查询-
我可以使用SparkCosmosDB连接器通过ApacheSpark在cosmosdb中创建数据库和集合吗?
请给我建议任何解决办法。我是否需要构建一个与.NETSDK类似的api
暂无答案!
目前还没有任何答案,快来回答吧!