想象一下,我的主键是timestamp
。
我想按时间戳范围限制查询。
即使我使用token()
,我也似乎无法使其发挥作用。此外,我无法在分区键上创建二级索引。
应该怎么做?
答案 0 :(得分:2)
Cassandra不允许对分区键进行范围查询。
解决此问题的一种方法是更改架构,以便您的时间戳值为群集列。为此,您需要引入一个sentinel列作为分区键。有关更详细的答案,请参阅此问题:Range Queries in Cassandra (CQL 3.0)
另一种方法就是让Spark进行过滤。主键上的范围查询应该在Spark SQL中有效。他们根本不会被推到Cassandra,Spark会获取所有数据并在Spark端过滤它们。