在Spark SQL中获取错误的时间戳

c8ib6hqw  于 8个月前  发布在  Apache
关注(0)|答案(2)|浏览(46)

在代码中,

date_format(CURRENT_TIMESTAMP,'yyyy-MM-dd HH:mm:ss')

输出是2023-10-16 05:49:15.000,输出不应该是2023-10-16 05:49:15吗?不知道为什么spark在最后增加了额外的秒数,我无法删除它。
我试过date_format(from_unixtime(unix_timestamp(CURRENT_TIMESTAMP)), 'yyyy-MM-dd HH:mm:ss'),但仍然有同样的问题。

kb5ga3dv

kb5ga3dv1#

我已经检查了Spark 3.3.0 &它正确地截断了最后几秒。检查下面。

scala> spark
.sql("select date_format(current_timestamp, 'yyyy-MM-dd hh:mm:ss') as ts ")
.show(false)
+-------------------+
|ts                 |
+-------------------+
|2023-10-17 04:46:52|
+-------------------+
xoefb8l8

xoefb8l82#

from datetime import datetime

data1 = [   ["1"],
            ["2"],
        ]

df1Columns = ["id"]
df1 = sqlContext.createDataFrame(data=data1, schema = df1Columns)
current_datetime = datetime.now()
new_df = df1.withColumn("date", F.date_format(F.lit(current_datetime), 'yyyy-MM-dd HH:mm:ss'))
new_df.show(truncate=False)

输出量:

+---+-------------------+
|id |date               |
+---+-------------------+
|1  |2023-10-16 23:57:01|
|2  |2023-10-16 23:57:01|
+---+-------------------+

相关问题