Возможно ли использовать запросы в стиле Mongo Shell с Spark Cosmos DB Connector? - PullRequest
0 голосов
/ 07 ноября 2019

Я использую Cosmos DB Connector для Spark. Можно ли использовать запросы Mongo Shell "JSON-style" с соединителем Cosmos DB вместо SQL-запросов?

Я пытался использовать MongoDB Connector вместо этого для достижения той же функциональности, но столкнулся с некоторыми раздражающими ошибками с памятьюограничивает использование Mongo Connector. Поэтому я отказался от этого подхода.

Так я бы предпочел запросить:

val results = db.cars.find(
    {
        "car.actor.account.name": "Bill"
    }
)

Это способ, которым соединитель космоса позволяет:

val readConfig: Config = Config(Map(
  "Endpoint" -> config.getString("endpoint"),
  "Masterkey" -> config.getString("masterkey"),
  "Database" -> config.getString("database"),
  "Collection" -> "cars",
  "preferredRegions" -> "South Central US",
  "schema_samplesize" -> "100",
  "query_custom" -> "SELECT * FROM root WHERE root['$v']['car']['$v']['actor']['$v']['account']['$v']['name']['$v'] = 'Bill'"
))

val results = spark.sqlContext.read.cosmosDB(readConfig)

Очевидно, что SQL-ориентированный подходне очень хорошо подходит для глубоко вложенных структур данных, которые я получаю из Cosmos DB. Это тоже немного более многословно;требовать ссылки на каждый вложенный словарь с "['$ v']" по причинам, по которым я неясен. Я бы предпочел использовать синтаксис в стиле Монго.

...