Я хочу рассчитать возраст и из поля DOB. Но в моем коде я тяжело его кодирую. Но нужно делать динамически, как сегодня - ДОБ. Точно так же я также хочу рассчитать продолжительность из start_date. Мой фрейм данных выглядит так -
id dob start_date
77 30/09/1990 2019-04-13 15:27:22
65 15/12/1988 2018-12-26 23:28:12
3 08/12/2000 2018-12-26 23:28:17
У меня пока есть - Для расчета возраста
df= df.withColumn('dob',to_date(unix_timestamp(F.col('dob'),'dd/MM/yyyy').cast("timestamp")))
end_date = '3/09/2019'
end_date = pd.to_datetime(end_date, format="%d/%m/%Y")
df= df.withColumn('end_date',F.unix_timestamp(F.lit(end_date),'dd/mm/yyyy').cast("timestamp"))
df = df.withColumn('age', (F.datediff(F.col('end_date'), F.col('dob')))/365)
df= df.withColumn("age", func.round(df["age"], 0))
For duration calculation -
end_date_1 = '2019-09-30'
end_date_1 = pd.to_datetime(end_date_1, format="%Y-%m-%d")
df= df.withColumn('end_date_1',F.unix_timestamp(F.lit(end_date_1),'yyyy-MM-dd HH:mm:ss').cast("timestamp"))
df= df.withColumn('duration', (F.datediff(F.col('end_date_1'), F.col('created_at'))))
В приведенных выше двух кодах у меня есть жесткий код двух значений. Одним из них является end_date = '2019-09-30', а другим - end_date_1 = '2019-09-30'. Но хочу сделать это на основе текущей даты (). Как это сделать в pyspark?