查找字符串中最后一个出现的空格,并在Spark数据帧中替换为":"



我有日期&在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|

最新更新