我有一个数据框:
|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 格式。这个怎么做?
架构是:
root
|-- sDate: string (nullable = true)
|-- Items: string (nullable = true)
|-- purchasedQTY: double (nullable = true)
|-- rate: double (nullable = true)
|-- purchasedVolume: double (nullable = true)
最佳答案
使用regexp_replace
:
df.withColumn("sDate", regexp_replace($"sDate", "([0-9]{4})/([0-9]{2})/([0-9]{2})", "$2/$3/$1"))
正则表达式将匹配三个捕获组中的年、月和日。重新安排的日期将用于替换旧的日期。由于正则表达式只会匹配要替换的格式的字符串,因此其他行不会发生任何变化。
关于python - 如何在pyspark数据框中转换 "DD/MM/YYYY"格式的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52049512/