我有一个推导日期值并计算月末差异的要求。 从源头来看,我有一个字符串列“ a”,值YYYYMMDD。 但是,在目标列中必须根据以下条件进行映射:
EOM(to_date(a, "DD.MM.YYYY")) >= EOM(current_date) #Output dateType is date type
我能够通过在python中导入datetime来创建current_date值。但是无法转换代码的第一部分。您能否在下面的代码中提供帮助?
答案 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