Am un cadru de date cu un timestamp domeniu - RECEIPTDATEREQUESTED:timestamp Pentru unii motiv, există date care sunt mai puțin decât 1900-01-01. Nu vreau, ceea ce vreau să fac, este pentru fiecare valoare din coloana de dataframe unde RECEIPTDATEREQUESTED<'1900-01-01 00:00:00' apoi setați timestamp să fie 1900-01-01 sau null. Am încercat de câteva modalități de a face acest lucru, dar se pare că unele mai simple, trebuie să existe. Am crezut că așa ceva s-ar putea lucra, dar
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")))