मैं एक डेटा फ्रेम के साथ एक टाइमस्टैम्प क्षेत्र - RECEIPTDATEREQUESTED:टाइमस्टैम्प किसी कारण के लिए, वहाँ रहे हैं तारीखों कर रहे हैं कि कम से कम 1900-01-01. मैं ये नहीं चाहता, क्या मैं क्या करना चाहते हैं, हर एक के लिए है मूल्य के कॉलम में dataframe जहां RECEIPTDATEREQUESTED<'1900-01-01 00:00:00' फिर सेट टाइमस्टैम्प करने के लिए या तो 1900-01-01 या अशक्त. मैंने कोशिश की है कुछ तरीके ऐसा करने के लिए, लेकिन यह लगता है कुछ और अधिक सरल में मौजूद होना चाहिए. मैंने सोचा था कि इस तरह से कुछ काम हो सकता है, लेकिन
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")))