Mám údajov rám s timestamp oblasti - RECEIPTDATEREQUESTED:timestamp Z nejakého dôvodu, nie sú dáta, ktoré sú menej ako 1900-01-01. Nechcem, aby sa tieto, čo chcem robiť, je pre každú hodnotu v stĺpci dataframe, kde RECEIPTDATEREQUESTED<'1900-01-01 00:00:00" a potom nastavte čas, aby buď 1900-01-01 alebo null. Snažil som sa niekoľko spôsobov, ako to urobiť, ale zdá sa, že niektoré jednoduché musí existovať. Myslel som, že niečo podobné by mohlo fungovať, ale
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")))