J'ai un bloc de données avec un champ timestamp - RECEIPTDATEREQUESTED:timestamp Pour une raison quelconque, il y a des dates qui sont moins de 1900-01-01. Je ne veux pas de ces, ce que je veux, c'est pour chaque valeur de la colonne du dataframe où la RECEIPTDATEREQUESTED<'1900-01-01 00:00:00", puis régler l'horodatage soit 1900-01-01 ou null. J'ai essayé quelques façons de le faire, mais il semble que certaines de plus simple doit exister. J'ai pensé à quelque chose comme ça pourrait fonctionner, mais
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")))