ฉันมีข้อมูลของกรอบกับวันที่และเวลาส-RECEIPTDATEREQUESTED:วันที่และเวลา สำหรับเหตุผลบางอย่างมีวันที่น้อยกว่า 1900-01-01. ฉันไม่ต้องการพวกนี้,สิ่งที่ฉันต้องการจะทำคือสำหรับทุกค่าอยู่ในคอลัมน์ของ dataframe อยู่ที่ไหน RECEIPTDATEREQUESTED<'1900-01-0100:00:00 แล้วตั้งค่าวันที่และเวลาให้เหมือนกั 1900-01-01 หรือโพรโทคอล aimcomment. ฉันพยายามไม่กี่วิธีที่จะทำเรื่องนี้แต่มันดูเหมือนบางอย่างมากกง่ายอย่างต้องมีตัวตน ฉันคิดว่าเรื่องแบบนี้อาจจะทำงานแต่
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")))