我有一个数据架与时间戳场RECEIPTDATEREQUESTED:时间戳 由于某些原因,有日期都不到1900-01-01. 我不想要这些,我想要做的,是为每一个值中所列的数据框在RECEIPTDATEREQUESTED<'1900-01-01 00:00:00'然后设定的时间戳到1900-01-01或空。 我已经尝试了一些方法可以做到这一点,但这似乎更多一些简单必须存在。 我认为像这样的东西可能的工作,但是
import datetime
def testdate(date_value):
oldest = datetime.datetime.strptime('1900-01-01 00:00:00', '%Y-%m-%d')
try:
if (date_value < oldest):
return oldest
else:
return date_value
except ValueError:
return oldest
udf_testdate = udf(lambda x:testdate(x),TimestampType())
bdf = olddf.withColumn("RECEIPTDATEREQUESTED",udf_testdate(col("RECEIPTDATEREQUESTED")))