在pySpark中将YYYYMMDD的字符串转换为DD.MM.YYYY的日期

时间:2019-12-29 06:16:58

标签: python datetime pyspark

我有一个推导日期值并计算月末差异的要求。 从源头来看,我有一个字符串列“ a”,值YYYYMMDD。 但是,在目标列中必须根据以下条件进行映射:

EOM(to_date(a, "DD.MM.YYYY")) >= EOM(current_date)   #Output dateType is date type

我能够通过在python中导入datetime来创建current_date值。但是无法转换代码的第一部分。您能否在下面的代码中提供帮助?

1 个答案:

答案 0 :(得分:0)

这比Pyspark问题更像是一个python问题。

在Python中,您可以执行以下操作:

from datetime import datetime
strip_time = datetime.strptime("01.01.2020", '%d.%m.%Y').timetuple()
print strip_time

并获得:

time.struct_time(tm_year=2020, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=1, tm_isdst=-1)

您也可以这样做:

from time import time
print strip_time > time()

并获得

True

因此,在Pyspark中,使用 RDD ,您可以先使用[datetime.strptime()] 映射您的值,然后执行过滤器并与“ time()”进行比较

如果您正在使用 DataFrames ,则可以在此处查看:Convert pyspark string to date format