Scala:检查当前时间戳是不是大于我的数据框中的时间戳列
Posted
技术标签:
【中文标题】Scala:检查当前时间戳是不是大于我的数据框中的时间戳列【英文标题】:Scala: To check the current Timstamp is greater than a timestamp column in my dataframeScala:检查当前时间戳是否大于我的数据框中的时间戳列 【发布时间】:2016-05-02 06:15:28 【问题描述】:假设我有一个包含 Timestamp 列的数据框。
Timestamp
2016-04-19T17:13:17
2016-04-20T11:31:31
2016-04-20T18:44:31
2016-04-20T14:44:01
我必须检查当前 timsetamp 是否大于 Scala 中的 Timestamp + 1
(即添加 1 天)列
【问题讨论】:
Filtering a spark dataframe based on date的可能重复 实际上我想检查当前时间戳而不是预定义日期。 好的,但是你想过滤还是什么?不清楚! 我必须检查我指定的条件并在另一个 Dataframe 中过滤掉 它回答了你的问题吗? 【参考方案1】:DataFrame 支持两种类型的current_
日期和时间戳
让我们考虑一个带有 id 和 event_date 列的 DataFrame df。
我们可以执行以下过滤操作:
import sqlContext.implicits._
import org.apache.spark.sql.functions._
// the event_date is before the current timestamp
df.filter('event_date.lt(current_timestamp()))
// the event_date is after the current timestamp
df.filter('event_date.gt(current_timestamp()))
我建议您阅读相关的 scala 文档以获取更多信息 here。你有一整节关于日期和时间戳的操作。
编辑:正如 cmets 中所讨论的,为了在您的 event_date
列中添加一天,您可以使用 date_add
函数:
df.filter(date_add('event_date,1).lt(current_timestamp()))
【讨论】:
感谢@eliasah,它很有帮助。但是假设我们要过滤“event_date”+根据列中指定的大于当前的日期再添加一天。那我们怎样才能实现呢。 你可以使用 date_add 然后它也可以在文档中找到。【参考方案2】:你可以这样做。
df.filter(date_add('column_name', 1).lt(current_timestamp()))
【讨论】:
以上是关于Scala:检查当前时间戳是不是大于我的数据框中的时间戳列的主要内容,如果未能解决你的问题,请参考以下文章