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
将日期时间转换为unix_时间戳Scala_Scala_Apache Spark_Apache Spark Sql - Fatal编程技术网

将日期时间转换为unix_时间戳Scala

将日期时间转换为unix_时间戳Scala,scala,apache-spark,apache-spark-sql,Scala,Apache Spark,Apache Spark Sql,我需要从Spark数据帧中获取最小值并对其进行变换。 目前,我只是获取这个值并使用DateTime对其进行转换,但是,我需要使用unix_时间戳格式作为结果。那么,如何使用Scala函数或Spark函数将DateTime转换为unix_时间戳呢 以下是我当前返回DateTime的代码: val minHour = new DateTime(df.agg(min($"event_ts")) .as[Timestamp].collect().head))

我需要从Spark数据帧中获取最小值并对其进行变换。 目前,我只是获取这个值并使用DateTime对其进行转换,但是,我需要使用unix_时间戳格式作为结果。那么,如何使用Scala函数或Spark函数将DateTime转换为unix_时间戳呢

以下是我当前返回DateTime的代码:

val minHour = new DateTime(df.agg(min($"event_ts"))
          .as[Timestamp].collect().head))
          .minusDays(5)
          .withTimeAtStartOfDay())
我也尝试过使用Spark函数,但无法将时间戳切换到一天的开始时间(这可以通过使用DateTime withTimeAtStartOfDay函数实现):


date\u sub
将时间戳转换为日期,因此时间将自动切换到一天的开始

df.show
+-------------------+----------+
|           event_ts|event_hour|
+-------------------+----------+
|2017-05-01 00:22:01|1493598121|
|2017-05-01 00:22:08|1493598128|
|2017-05-01 00:22:01|1493598121|
|2017-05-01 00:22:06|1493598126|
+-------------------+----------+

df.agg(
    min($"event_ts").alias("min_ts")
).select(
    unix_timestamp(date_sub($"min_ts", 5)).alias("min_ts_unix")
).withColumn(
    "min_ts", $"min_ts_unix".cast("timestamp")
).show
+-----------+-------------------+
|min_ts_unix|             min_ts|
+-----------+-------------------+
| 1493164800|2017-04-26 00:00:00|
+-----------+-------------------+
df.show
+-------------------+----------+
|           event_ts|event_hour|
+-------------------+----------+
|2017-05-01 00:22:01|1493598121|
|2017-05-01 00:22:08|1493598128|
|2017-05-01 00:22:01|1493598121|
|2017-05-01 00:22:06|1493598126|
+-------------------+----------+

df.agg(
    min($"event_ts").alias("min_ts")
).select(
    unix_timestamp(date_sub($"min_ts", 5)).alias("min_ts_unix")
).withColumn(
    "min_ts", $"min_ts_unix".cast("timestamp")
).show
+-----------+-------------------+
|min_ts_unix|             min_ts|
+-----------+-------------------+
| 1493164800|2017-04-26 00:00:00|
+-----------+-------------------+