나는 데이터를 프레임으로 타임 스탬프 필드 RECEIPTDATEREQUESTED:timestamp 몇 가지 이유가 있는 날짜는 것보다 적은 1900-01-01. 나는 원하지 않는 이들은,무엇을 원하는,모든 값에서 열의 데이터 프레임는 RECEIPTDATEREQUESTED<'1900-01-01 00:00:00'설정한 다음 중 하나에 타임스탬프 1900-01-01 또는 null 입니다. 나는 몇 가지 방법이지만,그것은 보인다 더 간단한 존재해야 합니다. 나는 생각이 같은 것이 작동하지만,
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")))