0

我有一些随时间变化的数据,我将其保存在 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。

星火版本 1.2.2

4

2 回答 2

2

这应该有效:

rdd.toDF.groupBy("Userid").max("Date")
于 2015-08-18T18:34:52.113 回答
-1

您可以做一件事,首先使用 spark 与 cassandra 连接,然后制作 spark 的数据框,然后将数据框转换为 temptable,然后您可以执行查询。

于 2015-08-18T06:01:34.400 回答