我正在使用databricks接收csv,并且有一个需要从字符串转换为时间戳的列。数据以字符串形式输入,格式如下:31-mar-27 10.59.00.000000pm gmt
我使用的代码是python,集群运行的是spark3.0.1。我以前使用过下面的代码,但没有使用am/pm或时区,我无法得到一个不为每个值返回null的格式
df.withColumn('columnName', to_timestamp(col('columnName'),'dd-MMM-yy HH.mm.ss.SSSSSS a zzz').cast(TimestampType()))
我在用这个文件https://spark.apache.org/docs/latest/sql-ref-datetime-pattern.html 帮助
1条答案
按热度按时间n53p2ov01#
因为时间戳中有am/pm,所以应该使用小写
h
为了clock-hour-of-am-pm (1-12)
,但不是H
代表什么hour-of-day (0-23)
.注意,不需要强制转换为timestamp类型,因为
to_timestamp
已返回时间戳类型列。