【发布时间】:2020-03-26 16:30:44
【问题描述】:
我正在尝试使用 regex_replace 将日期列从 yyyymmdd 重新格式化为 yyyy/mm/dd 并将另一列从 HHmmss 重新格式化为 HH:mm:ss。日期和时间列都是字符串。
发件人:
+----------+--------+
| date | time |
+----------+--------+
| 20200326 | 122450 |
+----------+--------+
收件人:
+------------+----------+
| date | time |
+------------+----------+
| 2020/03/26 | 12:24:50 |
+------------+----------+
这是我尝试过的:
datePattern = "([0-9]{4})([0-9]{2})([0-9]{2})"
timePattern = "([0-9]{2})([0-9]{2})([0-9]{2})"
df.withColumn("date", regexp_replace(df.date, datePattern, "$1/$2/$3"))
df.withColumn("time", regexp_replace(df.time, timePattern, "$1:$2:$3"))
这是我得到的:
+----------+--------+
| date | time |
+----------+--------+
| 20200326 | 122450 |
+----------+--------+
不确定我哪里出错了?另外,有没有比使用 regex_replace 更好的做法?
【问题讨论】: