如何将\u time-x(仅限小时)作为列显示在现有sparkDataframe中

rvpgvaaj  于 2021-07-09  发布在  Spark
关注(0)|答案(2)|浏览(184)

我有一个现有的sparkDataframe df . 我想添加一列 Hour 只包含小时(没有日期,没有分钟,没有秒)。
此外,小时应该比当前时间晚“x”小时。
我在当前日期后的“x”天内完成了以下操作(仅限日期)。

df.withColumn("date", to_date(date_add(current_date(), -x)))

我现在只想在几个小时内得到完全一样的东西。我该怎么办?

azpvetkf

azpvetkf1#

你可以用 interval 减去给定的小时数,以及 hour 仅获取小时数:

val x = 1

val df2 = df.withColumn("hour", expr(s"hour(current_timestamp() - interval $x hours)"))
x7yiwoj4

x7yiwoj42#

您可以使用下面的

df.withColumn("date", to_date(date_add(current_date(), -x))).withColumn("hour",hour(current_timestamp)-y)

这里y是你想落后的小时数。

相关问题