我的Dataframe以字符串格式显示日期,如下所示:
day_date
8/28/2020
9/21/2019
11/21/2020
12/12/2019
我想将此列的格式设置为,如果它与模式2020-11-25 04:02:08匹配,那么它的格式应该是yyyy-mm-dd(2020-11-25),如果它在11/25/2020 02:04:08,那么它的格式应该是mm/dd/yyyy(11/25/2020)
我一直在使用的代码是:
new_df = df.withColumn("new_date", when (df['day_date'].rlike('\d{1,2}/\d{1,2}/\d{4}\s*[\d:]*'),date_format('day_date','mm/dd/yyyy')) \
.when (df['day_date'].rlike('\d{4}-\d{1,2}-\d{1,2}\s*[\d:]*'),date_format('day_date','yyyy-mm-dd')) \
.otherwise(lit(None)))
但在执行时,只获取null。
有没有其他方法可以达到这个目的?
注:数据可能包含时间信息,也可能不包含时间信息。
1条答案
按热度按时间bpzcxfmw1#