Cassandra Spark&x2B;卡桑德拉。具有聚类顺序问题的复合密钥

Cassandra Spark&x2B;卡桑德拉。具有聚类顺序问题的复合密钥,cassandra,cql3,apache-spark,Cassandra,Cql3,Apache Spark,我有C*列族来存储数据之类的事件。以这种方式在CQL3中创建的柱族: CREATE TABLE event ( hour text, stamp timeuuid, values map<text, text>, PRIMARY KEY (hour, stamp) ) WITH CLUSTERING ORDER BY (stamp DESC) 创建表事件( 小时文本, 时间戳, 价值地图, 主键(小时,戳记) )使用聚类顺序(戳记描述) 分割者是分割者。然后,我尝

我有C*列族来存储数据之类的事件。以这种方式在CQL3中创建的柱族:

CREATE TABLE event (
  hour text,
  stamp timeuuid,
  values map<text, text>,
  PRIMARY KEY (hour, stamp)
) WITH CLUSTERING ORDER BY (stamp DESC)
创建表事件(
小时文本,
时间戳,
价值地图,
主键(小时,戳记)
)使用聚类顺序(戳记描述)
分割者是分割者。然后,我尝试通过库对该数据构建Spark查询。结果我收到两个问题:

  • 在我的例子中,集群键('hour'字段)有1000多条记录,但响应只包含每个键的前1000条记录。我可以在查询中增加页面大小以接收更多数据,但据我所知,分页器的任务必须是遍历数据并对其进行切片
  • 每一张唱片我都会收到不止一次
  • 关于第一个问题,我从Calliope作者那里得到了答案,即CQL3驱动程序必须对数据进行分页。他建议我读这本书。但我找不到如何使用正确的驱动程序指令构建查询的答案

    关于第二个问题,我发现这是Cassandra<1.2.11中Hadoop连接器的问题。但我使用C*2.0.3并用所需版本的库重建Spark。我还使用Calliope版本0.9.0-C2-EA

    您能给我指一下说明解决这些问题的正确方法或演示解决方法的文档或代码示例吗?我想我用C*-不正确地点燃连接器,但我找不到解决办法


    提前感谢。

    现在不可能对集群键使用非默认排序。如果集群键的排序顺序为默认(ACS),则所有操作都正常

    解决方法是修改数据模型以使用具有默认聚类顺序的复合键。

    似乎“with clustering order”子句是这两个问题的根源。当我从类似的表中读取数据时(只是没有使用聚类顺序),结果的限制和记录重复都不会出现。