根据时间戳过滤rdd

时间:2018-04-02 10:16:48

标签: scala apache-spark rdd spark-cassandra-connector

我有以下代码: -

val imei = "86656"
val date = "2017-04-09"
val gpsdt = "2017-04-09 00:20:10"
val rdd = sc.cassandraTable("test", "xyz").select("id", "date", "dttime").where("id=? and date=?", imei, date)

所以,现在我有了rdd,它带来了特定日期的特定imei的全部数据,但我想根据提到的" gpsdt"过滤行以获得2行。 - 1行比给定时间大一点,第二行比上面提到的行少?我怎样才能做到这一点?

我的Cassandra DB架构是: -

create table xyz( id text,date text, dttime timestamp,roll text, primary key((id,date),dttime)

谢谢,

1 个答案:

答案 0 :(得分:1)

你可以将rdd分成两个

1 dttime大于gpsdt,按dttime按升序排序{{1}第一个

2 take小于dttime,按gpsdt降序排列,{{1}第一个

最后dttime他们,你应该有你想要的行

<强>编程

take

感谢@Alex Ott指出https://github.com/datastax/spark-cassandra-connector/blob/master/doc/2_loading.md