Spark Cassandra Connector - perPartitionLimit

时间:2016-10-21 14:18:59

标签: apache-spark cassandra datastax

spark cassandra连接器中是否有一种方法可以实现侧面过滤,相当于每个分区限制在cql perPartitionLimit 在本机cassandra java驱动程序?

请注意,这里每个cassandra分区<​​strong>限制而不是每个spark分区(连接器中现有的限制功能支持)。

spark 2.0.1,connector - 2.0.0-M3

2 个答案:

答案 0 :(得分:1)

感谢RussS的初步答复。我使用以下方法让它工作:

首先,我们需要使用&#34; PER PARTITION LIMIT&#34;。

其次,如果你有其他where子句,则需要与其中一个子句结合使用,如下所示:

sc.cassandraTable(...)。其中(&#34; event_type = 1 PER PARTITION LIMIT 5&#34;)

而不是

sc.cassandraTable(...)。where(&#34; event_type = 1).where(&#34; PER PARTITION LIMIT 5&#34;)

否则将在&#34; PER PARTITION LIMIT&#34;之前生成AND关键字,这将导致错误。

答案 1 :(得分:0)

内置限制API(自2.0.0-M3开始)的Spark Cassandra Connector只能通过C *令牌范围进行限制。

如果您使用的Cassandra大于3.6,则可以在.where API中手动添加每个分区限制。

请参阅https://issues.apache.org/jira/browse/CASSANDRA-7017

sc.cassandraTable(...).where("PER PARTITION LIMIT 10")