Определите, включает ли массив дат определенную дату по условию в Pyspark

У меня есть столбец массива, содержащий даты. Я хочу вернуть столбец true false, который выполняет поиск в массиве и определяет, содержит ли массив дату до определенного условия.

Пример:

Date_ArrayМесто нахожденияЯ БЫ
[4/22/21,3/21/21]Даллас5
[5/22/21,6/18/21]Даллас5

Если моим условием является любая дата до 01.04.21, результат должен быть таким:

Date_ArrayМесто нахожденияЯ БЫbool_date
[4/22/21,3/21/21]Даллас5ПРАВДА
[5/22/21,6/18/21]Даллас5ЛОЖНЫЙ

Можно ли это сделать с помощью Pyspark или Pandas?

3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
0
27
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Зависит от вашего фактического состояния, вы можете настроить код здесь, но общая идея заключается в том, чтобы получить максимальную и минимальную дату массива и использовать ее для любого сравнения.

from pyspark.sql import functions as F

(df
    .withColumn('max_date', F.array_max('date_array'))
    .withColumn('min_date', F.array_min('date_array'))
    .withColumn('bool_date1', (F.col('min_date') < F.lit(datetime.fromisoformat('2021-04-01'))))
    .show()
)

+------------------------+--------+---+----------+----------+----------+
|date_array              |location|id |max_date  |min_date  |bool_date1|
+------------------------+--------+---+----------+----------+----------+
|[2021-04-22, 2021-03-21]|Dallas  |5  |2021-04-22|2021-03-21|true      |
|[2021-05-22, 2021-06-18]|Dallas  |5  |2021-06-18|2021-05-22|false     |
+------------------------+--------+---+----------+----------+----------+

Спасибо! Работает отлично.

Alex Triece 22.04.2022 20:39

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