1
我的Spark DataDrame
中包含多個字符串格式的日期列。我想將這些轉換爲DateTime。在Spark中包含多個字符串日期格式到DateTime的投射列
這兩種格式在我的專欄是:
mm/dd/yyyy
;和yyyy-mm-dd
我的解決方法到目前爲止是使用UDF來改變第一日期格式相匹配的第二如下:
import re
def parseDate(dateString):
if re.match('\d{1,2}\/\d{1,2}\/\d{4}', dateString) is not None:
return datetime.strptime(dateString, '%M/%d/%Y').strftime('%Y-%M-%d')
else:
return dateString
# Create Spark UDF based on above function
dateUdf = udf(parseDate)
df = (df.select(to_date(dateUdf(raw_transactions_df['trans_dt']))))
這工作,但不是所有的容錯寬容。我特別關心的是:
- 日期格式我還沒有遇到。
- 區分
mm/dd/yyyy
和dd/mm/yyyy
(我正在使用的正則表達式此刻並不這樣做)。
有沒有更好的方法來做到這一點?