Частично обновить документ с помощью Pyspark в CosmosDB с API MongoDB - PullRequest
0 голосов
/ 31 августа 2018

Я использую блоки данных Azure с Pyspark и CosmosDB с API MongoDB.

Следующая команда Pyspark используется для сохранения data_frame в CosmosDB, которая работает нормально:

def storeCollection(self, collection, data_frame, save_mode="append"):
data_frame.write.format(
        "com.mongodb.spark.sql.DefaultSource").option(
        "spark.database.output.uri", self.uri).option(
        "spark.database.output.database", self.db).option(
        "spark.database.output.collection", collection).mode(save_mode).save()

Но теперь моя проблема: у меня в CosmosDB следующая структура документа:

{
 "_id" : "687c0184-aaa6-11e8-94bd-cba20d67390c",
 "api" : "",
 "aspectSet" : "",
 "id" : "687c0184-aaa6-11e8-94bd-cba20d67390c",
 "providerID" : "",
 "searchDate" : "",
 "searchQuery" : [
    {
        "_id" : "0",
        "id" : "0",
        "queryID" : "",
        "searchTerm" : "",
        "searchTermCategory" : "",
        "searchTermLanguage" : "en",
        "searchTermPriority" : "1",
        "searchTermSubcategory" : "",
        "weight" : "1"
    }
   ]
}

Теперь я хочу добавить новый searchQuery в список searchQueries, выполнив частичное обновление документа, но я не нашел примеров того, как это сделать.

Существует страница от Microsoft (https://docs.microsoft.com/en-us/azure/cosmos-db/mongodb-feature-support)), в которой говорится, что CosmosDB поддерживает множество функций MongoDB, но я не могу найти примеров того, как это сделать.

Кто-то уже работал с CosmosDB и сталкивался с подобной проблемой? Любые предложения или указатели будут высоко оценены.

...