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
(私が使っている正規表現は現時点でこれをしていません)を区別します。
これを行うより良い方法はありますか?