我有日期&在spark数据框列中以字符串格式用空格分隔的时间,如下-
DTC
11 AUGUST 2012 10:12
12 AUGUST 2012 10:12
13 AUGUST 2012 10:12
我想用同一列中的':'替换每个日期中的最后一个空格。输出应该如下所示
DTC
11 AUGUST 2012:10:12
12 AUGUST 2012:10:12
13 AUGUST 2012:10:12
有什么建议吗?
匹配
^(.*) (.*)$
用 代替
1:2
匹配:
^
-起始锚(.*)
-匹配并捕获零个或多个字符,后跟一个空格,贪婪(.*)
-匹配并捕获零个或多个字符$
-尾锚
替代:
1
-第一次捕获:
-一个文字:
2
-第二次捕获
python很好地满足了日期和时间戳转换。熟悉日期和时间戳函数,将为您节省大量时间。
使用pyspark's toto_timestamp
和使用date_format
的格式将字符串强制转换为时间戳
df=spark.createDataFrame([ ( 1 , '11 AUGUST 2012 10:12' ),
( 1 ,'12 AUGUST 2012 10:12')],
('id' ,'DTC' ))
代码df.withColumn('DTC',date_format(to_timestamp('DTC',"dd MMMM yyyy HH:mm"),"dd MMMM yyyy:HH:mm")).show()
结果
+---+--------------------+
| id| DTC|
+---+--------------------+
| 1|11 August 2012:10:12|
| 1|12 August 2012:10:12|