pyspark сравнивает столбец в данных (current_week (ГГГГ), где XX — номер недели) с текущим системным номером недели (сегодняшним номером недели)

#python #apache-spark #pyspark

#питон #apache-spark #pyspark #python

Вопрос:

У меня есть таблица со столбцом => data_week_number в формате ГГГГ (пример: 202040 ).

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

Я мог видеть системную дату и номер недели в spark, но не в формате, указанном выше.

Ответ №1:

Вплоть до spark 2.4.6 вы можете действовать следующим образом

 spark.sql("""select 202040 - 
             date_format(to_date(
             current_date, "dd/MMM/yyyy"), 'yyyyww') yearWk             
             """).show
  

Которая возвращает

  ------ 
|yearWk|
 ------ 
|   2.0|
 ------ 
  

Начиная с Spark 3.0, date_format больше не принимает ‘w’ для недели года или ‘W’ для недели месяца. Вы можете установить для spark.sql.legacy.timeParserPolicy значение LEGACY, чтобы восстановить поведение до Spark 3.

Комментарии:

1. У меня есть две даты 2016001 2017002 (январь 2016 и февраль 2017), как мне найти в них разницу в месяцах