scala - date_format 不处理带有“00:00:00”的时间戳
问题描述
2020-01-27 00:00:00
它的类型格式timestamp
为2020-01-27 12:00:00
而不是2020-01-27 00:00:00
import spark.sqlContext.implicits._
import java.sql.Timestamp
import org.apache.spark.sql.functions.typedLit
scala> val stamp = typedLit(new Timestamp(1580105949000L))
stamp: org.apache.spark.sql.Column = TIMESTAMP('2020-01-27 00:19:09.0')
scala> var df_test = Seq(5).toDF("seq").select(
| stamp.as("unixtime"),
| date_trunc("HOUR", stamp).as("date_trunc"),
| date_format(date_trunc("HOUR", stamp), "yyyy-MM-dd hh:mm:ss").as("hour")
| )
df_test: org.apache.spark.sql.DataFrame = [unixtime: timestamp, date_trunc: timestamp ... 1 more field]
scala> df_test.show
+-------------------+-------------------+-------------------+
| unixtime| date_trunc| hour|
+-------------------+-------------------+-------------------+
|2020-01-27 00:19:09|2020-01-27 00:00:00|2020-01-27 12:00:00|
+-------------------+-------------------+-------------------+
解决方案
推荐阅读
- vue.js - 如何在 Vue CLI 中修改 e2e 测试的位置?
- c# - 如何存储从 HTTPPost web api 方法获取的设备令牌
- java - 无法在 Java 11 上运行的 Wildfly 17 中运行 JMX Exporter
- python - 抓取滚动时加载内容的动态网站
- python - 如何在 Mac 上使用 python 打开 Finder
- amazon-web-services - 如何在 AWS Lambda 中使用 pdfkit?
- python - 从文本图像中删除分界 - 图像处理
- c++ - 为什么我的 for 循环只运行 2 次而不是 10 次?
- python - 运行 csv 数据的行(在 Python 中)
- javascript - 如何保持插入符号在 contenteditable 元素中的位置