Получение данных Cosmos Mongo DB с помощью блоков данных путем применения фильтров

Мне нужно было бы добавить условие фильтра при приеме данных из Cosmos Mongo DB с использованием Databricks,

Я использую следующий запрос для получения данных Cosmos Collection:

df = spark.read \
.format('com.mongodb.spark.sql.DefaultSource') \
.option('uri', sourceCosmosConnectionString) \
.option('database', sourceCosmosDocument) \
.option('collection', sourceCosmosCollection) \
.load()

Как я могу добавить сюда фильтр, чтобы выбрать только выбранные данные? Например: Я хочу получать данные только там, где

{"type" : "student"}

Я был бы очень признателен, если бы кто-нибудь мог помочь в этом

Я попытался выполнить следующий запрос, но получил ошибку, как показано ниже:

query = {"type" : "student"}
df = spark.read \
    .format('com.mongodb.spark.sql.DefaultSource') \
    .option('uri', sourceCosmosConnectionString) \
    .option('database', sourceCosmosDocument) \
    .option('collection', sourceCosmosCollection) \
    .option('pipeline', json.dumps(query)) \
    .load()

Ошибка: org.apache.spark.SparkException: задание прервано из-за сбоя этапа: задача 0 на этапе 16.0 завершилась неудачно 4 раза, последний сбой: потеряна задача 0.3 на этапе 16.0 (TID 34) (10.139.64.5 исполнитель 0): com.mongodb. MongoCommandException: выполнение команды завершилось ошибкой 40324 (40324): «Неопознанное имя стадии конвейера: тип» на сервере xxxxxxx-xxxxx.mongo.cosmos.azure.com:10255. Полный ответ: {"ok": 0.0, "errmsg": "Неопознанное имя этапа конвейера: тип", "code": 40324, "codeName": "40324"}

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
72
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Сообщение об ошибке означает, что имя этапа в запросе конвейера агрегации не было распознано. Решение будет состоять в том, чтобы убедиться, что все имена конвейеров агрегации допустимы в вашем запросе.

В этой статье описаны распространенные ошибки и решения для развертываний с использованием Azure Cosmos DB для MongoDB.

Попробуйте это и, пожалуйста, дайте мне знать, если это сработает: -

query = {'$match': { 'type':'student' }}

df = spark.read \
 
.format('com.mongodb.spark.sql.DefaultSource') \
 
.option('uri', sourceCosmosConnectionString) \
 
.option('database', sourceCosmosDocument) \
 
.option('collection', sourceCosmosCollection) \
 
.option('pipeline', query) \
 
.load()

Спасибо за ответ, выражение соответствия работает как положено

Swapnil 15.11.2022 04:53

Другие вопросы по теме