Создать столбец с датой, которая 3 года назад от заданного столбца даты (pyspark)? - PullRequest
0 голосов
/ 08 февраля 2020

Я хочу создать столбец с использованием pyspark, который содержит дату, которая составляет 3 года до даты в данном столбце. Столбец даты выглядит так:

             date        
        2018-08-01   
        2016-08-11
        2014-09-18
        2018-12-08
        2011-12-18

И я хочу этот результат:

         date         past date
        2018-08-01   2015-08-01
        2016-08-11   2013-08-11
        2014-09-18   2011-09-18
        2018-12-08   2015-12-08
        2011-12-18   2008-12-18

Ответы [ 2 ]

1 голос
/ 08 февраля 2020

Вы можете использовать date_sub функцию .

Вот код Scala, который будет очень python.

df.withColumn("past_date",date_sub(col("date"), 1095))

1 голос
/ 08 февраля 2020

Попробуйте с помощью функции add_months в pyspark и умножьте 12 на -3!

Example:

l = l=[('2018-08-01',),('2016-08-11',)]
ll=["date"]
df=spark.createDataFrame(l,ll)
df.withColumn("past_date",add_months(col("`date`"),-3*12)).show()

RESULT:

+----------+----------+
|      date| past_date|
+----------+----------+
|2018-08-01|2015-08-01|
|2016-08-11|2013-08-11|
+----------+----------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...