我有以下代码: -
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)
谢谢,
答案 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