SparkSQL通过Cassandra分区键范围限制查询

时间:2016-03-14 08:44:56

标签: apache-spark cassandra

想象一下,我的主键是timestamp

我想按时间戳范围限制查询。

即使我使用token(),我也似乎无法使其发挥作用。此外,我无法在分区键上创建二级索引。

应该怎么做?

1 个答案:

答案 0 :(得分:2)

Cassandra不允许对分区键进行范围查询。

解决此问题的一种方法是更改​​架构,以便您的时间戳值为群集列。为此,您需要引入一个sentinel列作为分区键。有关更详细的答案,请参阅此问题:Range Queries in Cassandra (CQL 3.0)

另一种方法就是让Spark进行过滤。主键上的范围查询应该在Spark SQL中有效。他们根本不会被推到Cassandra,Spark会获取所有数据并在Spark端过滤它们。