spark cassandra连接器中是否有一种方法可以实现侧面过滤,相当于每个分区限制在cql 或 perPartitionLimit 在本机cassandra java驱动程序?
请注意,这里每个cassandra分区<strong>限制而不是每个spark分区(连接器中现有的限制功能支持)。
spark 2.0.1,connector - 2.0.0-M3
答案 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")