在使用distinct时获取每个RDD的顶部条目



我有一些随时间变化的数据,我把它保存在cassandra中。UserId是分区键,冲压日期是按降序排列的集群键和数据。我的期望是,如果我从Spark查询这个,并在上面运行一个。distinct,我将得到每个UserId的最上面的条目,从而给我最新的数据。但看起来它并没有这样做。

除了减少数据并传递一个为每次比较选择最近日期数据的函数之外,是否有任何方法可以获得与最新日期对应的数据?

[编辑]

Sample:  
Userid: 1  
    Date: 8/15/2015  
        Location: Building 1  
        ...   
    Date 8/1/2015  
        Location: Building 5  
        ...  
Userid: 2  
    Date: 7/30/2015  
        Location: Building 10  
        ...
    Date: 6/1/2015  
        Location: Building 3  
        ...

所以根据我的要求,当用户1时,我想要建筑物1作为位置,建筑物10为用户2。

Spark版本1.2.2

应该可以:

rdd.toDF.groupBy("Userid").max("Date")

你可以做一件事,首先使用spark与cassandra连接,然后创建spark的dataframe,然后将dataframe转换为temptable,然后你可以执行你的查询。

相关内容

  • 没有找到相关文章

最新更新