Есть ли способ проверить, существует ли данное поле в pyspark и mongodb? - PullRequest
0 голосов
/ 01 мая 2020

У меня есть коллекция документов с N полями, одним из которых является строковое поле, содержащее некоторый текст. Это поле есть не в каждом документе.

Для данной задачи у меня есть 2 основных варианта:

1) создать поле в документах, где оно отсутствует, и заменить его некоторым текстом-заполнителем.

2) удалить документ.

В mongodb я мог бы легко справиться с этой ситуацией с помощью синтаксиса { field: { $exists: <boolean> } }, но я использую pyspark с разъемом mongodb. Читая документацию, я не нашел ничего полезного.

Кто-нибудь может предложить мне возможное решение? Спасибо

Редактировать

Как и предполагалось в ответе, я скучаю по тому, что модуль pyspark.sql (очевидно) основан на реляционной модели, поэтому отсутствующие поля документа обрабатываются как нулевые (см. Изображение и обзор текстовых полей):

enter image description here

1 Ответ

0 голосов
/ 01 мая 2020

Если я правильно понимаю ваш вопрос:

  1. your_df.withColumn("your_column",when(col("your_column").isNull, lit("smth")).otherwise(col("your_column"))

  2. просто отфильтруйте запись -> your_df.where(col("your_column").isNotNull).

Если это не то, что вы искали, предоставьте дополнительную информацию о вашем вопросе (и примеры).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...