Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 如何将当前_time-x(仅小时)作为列添加到现有Spark数据帧中_Scala_Dataframe_Apache Spark_Apache Spark Sql - Fatal编程技术网

Scala 如何将当前_time-x(仅小时)作为列添加到现有Spark数据帧中

Scala 如何将当前_time-x(仅小时)作为列添加到现有Spark数据帧中,scala,dataframe,apache-spark,apache-spark-sql,Scala,Dataframe,Apache Spark,Apache Spark Sql,我有一个现有的Spark数据帧df。我想在其中添加一列Hour,该列只包含小时(无日期、无分钟、无秒) 此外,小时数应比当前时间晚“x”小时 我在当前日期后的“x”天内完成了以下操作(仅限日期) df.withColumn(“date”,to_date(date_add(current_date(),-x))) 我现在只想在几个小时内得到完全一样的东西。我该怎么办?您可以在下面使用 df.withColumn("date", to_date(date_add(current

我有一个现有的Spark数据帧
df
。我想在其中添加一列
Hour
,该列只包含小时(无日期、无分钟、无秒)

此外,小时数应比当前时间晚“x”小时

我在当前日期后的“x”天内完成了以下操作(仅限日期)

df.withColumn(“date”,to_date(date_add(current_date(),-x)))
我现在只想在几个小时内得到完全一样的东西。我该怎么办?

您可以在下面使用

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

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

您可以使用
interval
减去给定的小时数,并使用
hour
仅获取小时数:

val x = 1

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

例如,如果当前时间戳为凌晨1点,y为6,这将导致负小时数,谢谢。还有,如果我想保留整个时间戳,我该怎么办;但减去“x”小时后,只需删除hour()@DebapratimChakraborty