Маленькая хитрость, небольшое улучшение.
Предположим, у нас есть один набор данных с одним столбцом даты. Мы хотим знать диапазон дат — минимальную и максимальную дату всех записей.
Вот код для этого:
In [1]: import pyspark.sql.functions as F In [2]: U.show_info( ...: df_final.select( ...: F.array_join( ...: F.array( ...: F.min("sale_date").alias("min_sale_date"), ...: F.max("sale_date").alias("max_sale_date"), ...: ), ...: delimiter=" > ", ...: ).alias("sale_date_range") ...: ) ...: ) Data Total: 1 root |-- sale_date_range: string (nullable = false) -RECORD 0-------------------------------- sale_date_range| 2022-07-01 > 2023-07-20
- используйте функции min и max, чтобы получить минимальную и максимальную даты
- создайте столбец массив для включения обоих значений
- присоединиться к столбцу массива (функция array_join) с разделителем ‘›’
- выбрать из фрейма данных
- используйте псевдоним для переименования столбцов, созданных функциями
Таким образом, мы получаем интуитивно понятный вывод диапазона дат.