Spark + Cassandra。具有聚类顺序问题的复合键

时间:2014-03-06 09:16:47

标签: 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)

分区程序是Murmur3分区程序。然后我尝试通过Calliope库为该数据构建S​​park查询。结果我收到两个问题:

  1. 在我的情况下,群集密钥('小时'字段)有超过1000条记录,但响应仅包含每个密钥的前1000条记录。我可以在查询中增加页面大小以接收更多数据,但据我所知,它必须是分页器的任务才能遍历数据并对其进行切片。
  2. 我不止一次收到每条记录。
  3. 关于第一个问题我从Calliope作者那里得到答案,CQL3驱动程序必须对数据进行分页。他建议我阅读DataStax article。但我找不到如何用驱动程序的正确指令构建查询的答案。

    关于第二个问题我发现Cassandra中的Hadoop连接器存在问题&lt; 1.2.11。但我使用C * 2.0.3并使用所需版本的库重建Spark。我也使用Calliope版本0.9.0-C2-EA。

    您是否可以向我指出解释这些问题或演示解决方法的正确方法的文档或代码示例?我想我以不正确的方式使用C * -to-Spark连接器,但我找不到解决方案。

    提前谢谢。

1 个答案:

答案 0 :(得分:0)

现在不可能对群集密钥使用非默认排序。一切正常,然后群集键的排序顺序是默认(ACS)。

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