我在spark dataframe列中用空格分隔了字符串格式的日期和时间,如下所示-
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
有什么建议吗?
smdnsysy1#
匹配
^(.*) (.*)$
并替换为
\1:\2
匹配:
^
(.*)
$
替代品:
\1
:
\2
Demo
68bkxrlz2#
日期和时间戳转换在python中得到了很好的满足。熟悉日期和时间戳函数会保存你的堆。使用pyspark的到to_timestamp和使用date_format的格式将字符串强制为时间戳数据类型
to_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|
2条答案
按热度按时间smdnsysy1#
匹配
并替换为
匹配:
^
-线锚的起点(.*)
-匹配并捕获后跟空格的零个或多个字符,greedy(.*)
-匹配并捕获零个或多个字符$
-线端锚替代品:
\1
-第一次捕获:
-文字:
\2
-第二次捕获Demo
68bkxrlz2#
日期和时间戳转换在python中得到了很好的满足。熟悉日期和时间戳函数会保存你的堆。
使用pyspark的到
to_timestamp
和使用date_format
的格式将字符串强制为时间戳数据类型
代码
结果,结果