Tengo un marco de datos con un campo de marca de hora - RECEIPTDATEREQUESTED:timestamp Por alguna razón, hay fechas que están a menos de 1900-01-01. No quiero esto, lo que quiero hacer, es que cada valor en la columna de la dataframe donde el RECEIPTDATEREQUESTED<'1900-01-01 00:00:00', a continuación, establezca la marca de hora a 1900-01-01 o nulo. Yo he probado un par de maneras de hacer esto, pero parece que algunos más simple debe existir. Pensé que algo como esto podría funcionar, pero
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")))