将字符串转换为时间戳
casting strings to timestamp
我想将字符串转换为时间戳。我面临的问题是字符串显示月份的前三个字母,而不是月份编号:
例如31-JAN-20 12.03.48.759214 AM
有没有什么聪明的方法可以把超值变成喜欢?
2020-01-31T12:03:48.000+0000
谢谢
使用to_timestamp
将字符串转换为时间戳类型,然后使用format_date
获得所需的模式:
from pyspark.sql import functions as F
df = spark.createDataFrame([("31-JAN-20 12.03.48.759214 AM",)], ["date"])
df.withColumn(
"date2",
F.date_format(
F.to_timestamp("date", "dd-MMM-yy h.mm.ss.SSSSSS a"),
"yyyy-MM-dd'T'HH:mm:ss.SSS Z"
)
).show(truncate=False)
#+----------------------------+-----------------------------+
#|date |date2 |
#+----------------------------+-----------------------------+
#|31-JAN-20 12.03.48.759214 AM|2020-01-31T00:03:48.759 +0100|
#+----------------------------+-----------------------------+
我想将字符串转换为时间戳。我面临的问题是字符串显示月份的前三个字母,而不是月份编号:
例如31-JAN-20 12.03.48.759214 AM
有没有什么聪明的方法可以把超值变成喜欢?
2020-01-31T12:03:48.000+0000
谢谢
使用to_timestamp
将字符串转换为时间戳类型,然后使用format_date
获得所需的模式:
from pyspark.sql import functions as F
df = spark.createDataFrame([("31-JAN-20 12.03.48.759214 AM",)], ["date"])
df.withColumn(
"date2",
F.date_format(
F.to_timestamp("date", "dd-MMM-yy h.mm.ss.SSSSSS a"),
"yyyy-MM-dd'T'HH:mm:ss.SSS Z"
)
).show(truncate=False)
#+----------------------------+-----------------------------+
#|date |date2 |
#+----------------------------+-----------------------------+
#|31-JAN-20 12.03.48.759214 AM|2020-01-31T00:03:48.759 +0100|
#+----------------------------+-----------------------------+