如何获得今天 - " 1天"在sparksql中的日期?

时间:2016-12-13 06:28:40

标签: java python scala apache-spark apache-spark-sql

如何在sparksql中获取current_date - 1天,与mysql中的cur_date()-1相同。

4 个答案:

答案 0 :(得分:12)

算术函数允许您对包含日期的列执行算术运算。

例如,您可以计算两个日期之间的差异,将日期添加到日期或从日期中减去天数。内置日期算术函数包括datediffdate_add date_sub add_monthslast_daynext_daymonths_between

除此之外我们需要的是

  

date_sub(timestamp startdate,int days),目的:减去指定的天数   来自TIMESTAMP值。第一个参数可以是一个字符串,即   如果它使用识别的格式,则自动转换为TIMESTAMP   在TIMESTAMP数据类型中描述。返回类型:时间戳

我们有

  

current_timestamp()目的:now()函数的别名。返回   type:timestamp

你可以选择

date_sub(CAST(current_timestamp() as DATE), 1)

请参阅https://spark.apache.org/docs/1.6.2/api/java/org/apache/spark/sql/functions.html

答案 1 :(得分:5)

你可以尝试

date_add(current_date(), -1)

我也不知道火花,但我在谷歌上发现了它。 您也可以使用此link作为参考

答案 2 :(得分:4)

您可以轻松执行此任务,有许多与日期相关的方法,您可以在此处使用< 0

Spark-REPL上的示例:

Comparable<T>#compareTo(T)

答案 3 :(得分:0)

是的,date_sub()函数是该问题的正确选择,无论如何,所选答案中存在错误:

  

返回类型:时间戳记

返回类型应该为date,date_sub()函数将修剪时间戳的任何hh:mm:ss部分,并且仅返回date