Eu tenho um quadro de dados com um campo de carimbo de data / hora - RECEIPTDATEREQUESTED:carimbo de data / hora Por algum motivo, existem datas que são menos do que 1900-01-01. Eu não quero isso, o que eu quero fazer, é para cada valor da coluna da dataframe onde o RECEIPTDATEREQUESTED<'1900-01-01 00:00:00', em seguida, defina o carimbo de data / hora para 1900-01-01 ou nulo. Eu tentei algumas formas de fazer isso, mas parece que alguns mais simples deve existir. Eu pensei algo como isso pode funcionar, mas
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")))