首页 > 解决方案 > 试图转换时间戳但得到模式 datetimeformatter 错误

问题描述

我有一个创建的列作为string我要转换为的类型Datetime

格式如下所示:7/26/2021 10:12:48 PM

我尝试了以下但收到错误消息:

display(
    sdf.select(
        "*", F.to_timestamp(F.col("created"), "MM-dd-yyyy hh:mm:ss aa").alias("dt")
    )
)

当我删除一个“a”时,我只得到NULLs

标签: apache-sparkpyspark

解决方案


你有一个约会,/你尝试用-.

尝试这个 :"MM/dd/yyyy hh:mm:ss a"

df = spark.createDataFrame([["7/26/2021 10:12:48 PM"]], ["created"]).select(
    "*", F.to_timestamp(F.col("created"), "MM/dd/yyyy hh:mm:ss a").alias("dt")
)

df.show()
+--------------------+-------------------+
|             created|                 dt|
+--------------------+-------------------+
|7/26/2021 10:12:4...|2021-07-26 22:12:48|
+--------------------+-------------------+

df.printSchema()
root
 |-- created: string (nullable = true)
 |-- dt: timestamp (nullable = true)


推荐阅读