Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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 火花时差_Scala_Apache Spark_Apache Spark Sql_Apache Spark Dataset - Fatal编程技术网

Scala 火花时差

Scala 火花时差,scala,apache-spark,apache-spark-sql,apache-spark-dataset,Scala,Apache Spark,Apache Spark Sql,Apache Spark Dataset,从spark 1.5.x开始,添加了一些方便的方法来处理时间 df.select(datediff($"A", $"B")).show 但这会以天为单位返回差值。是否可以选择将其转换为不同的时间间隔,例如年 我用手工 df.select(year($"A")- year($"B")).show 这就足够了。但如果更准确地计算日期差异,例如包括显示的月/日,则会更好 UDF是current spark 2.0.2的解决方案吗?或者我是否缺少将差值转换为天的选项,例如年?时间戳类型可以在几秒钟内

从spark 1.5.x开始,添加了一些方便的方法来处理时间

df.select(datediff($"A", $"B")).show
但这会以天为单位返回差值。是否可以选择将其转换为不同的时间间隔,例如年

我用手工

df.select(year($"A")- year($"B")).show
这就足够了。但如果更准确地计算日期差异,例如包括显示的月/日,则会更好


UDF是current spark 2.0.2的解决方案吗?或者我是否缺少将差值转换为天的选项,例如年?

时间戳
类型可以在几秒钟内转换为其Unix时间戳。如果这个分辨率对你来说足够好,剩下的只是一堆算术运算。您可以计算秒数差异,如下所示:

import org.apache.spark.sql.Column

def secondsBetween(col1: Column, col2: Column) =
  col2.cast("timestamp").cast("bigint") - col1.cast("timestamp").cast("bigint")
并根据您的需要重新取样,例如:

def minutesBetween(col1: Column, col2: Column) =
  (secondsBetween(col1, col2) / 60).cast("bigint")

显然,这并不能处理诸如夏令时或闰秒之类的日期和时间处理的所有细节,因此,如果这些在您的域中很重要,那么建议使用带有适当时间处理库的UDF。

时间戳
类型可以在几秒钟内转换为Unix时间戳。如果这个分辨率对你来说足够好,剩下的只是一堆算术运算。您可以计算秒数差异,如下所示:

import org.apache.spark.sql.Column

def secondsBetween(col1: Column, col2: Column) =
  col2.cast("timestamp").cast("bigint") - col1.cast("timestamp").cast("bigint")
并根据您的需要重新取样,例如:

def minutesBetween(col1: Column, col2: Column) =
  (secondsBetween(col1, col2) / 60).cast("bigint")
显然,这并不能处理诸如夏令时或闰秒等日期和时间处理的所有细节,因此,如果这些在您的领域很重要,那么建议使用带有适当时间处理库的UDF