如何在pyspark数据帧中转换“DD/MM/YYYY”格式的日期?

2024-03-28 22:41:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧:

|2018/12/04|    mop-MD00094(Kg.)|      2500.0|  147.0|       367500.0|
|2018/12/04|    RSE-RM00014(Kg.)|     29000.0|   18.8|       545200.0|
|13/04/2018| BETAIN-MD00032(Kg.)|       200.0|  177.0|        35400.0|
|13/04/2018|    MGL-RM00005(Kg.)|     25000.0|   42.5|      1115625.0|
|13/04/2018|    MZE-RM00007(Kg.)|     24750.0|   14.1|       348975.0|

在这里,您可以看到前两行的日期格式是YYYY/DD/MM格式,其余的是DD/MM/YYYY格式,我想将所有这些都改为DD/MM/YYYY格式。怎么做?在

模式是:

^{pr2}$

Tags: 数据格式ddmmkgyyyymglmop
1条回答
网友
1楼 · 发布于 2024-03-28 22:41:11

使用regexp_replace

df.withColumn("sDate", regexp_replace($"sDate", "([0-9]{4})/([0-9]{2})/([0-9]{2})", "$2/$3/$1"))

正则表达式将在三个捕获组中匹配年、月和日。重新安排的日期将用于替换旧的日期。因为正则表达式只与要替换的格式匹配字符串,所以其他行不会发生任何变化。在

相关问题 更多 >