2016-10-21 101 views
1

是否有火花卡桑德拉連接器的方式來實現所述側端過濾,它等效於每分區限制在CQLperPartitionLimit在天然卡桑德拉Java驅動程序?火花卡桑德拉連接器 - perPartitionLimit

請注意,這裏是每個cassandra分區的限制不是每個spark分區(連接器中現有的限制功能支持)。

火花2.0.1,連接器 - 2.0.0-M3

回答

0

的Spark卡桑德拉連接器內置於限制API(如2.0.0-M3的)只能由C *令牌區間的上限。

如果您使用的Cassandra大於3.6,則可以在.where API中手動添加每個分區限制。

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

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

感謝您的快速回答。但是,當它在api中指定時,關鍵字STATICLIMIT被視爲列名,因此是錯誤。 引起:java.io.IOException:準備SELECT ... FROM ... WHERE token(「src」)>時的異常? AND token(「src」)<=? AND STATICLIMIT = 1 AND event_type = 1允許過濾:未定義的列名staticlimit。 Cassandra版本3.9 – ray

+0

對不起,沒有讀完該票的結束。每個分區限制 – RussS

1

感謝來自RussS最初的答案。我通過以下方式使用它:

首先,我們需要使用「PER PARTITION LIMIT」。

第二,如果你有其他的where子句,這需要與他們的一個組合,如下:

sc.cassandraTable(...),其中( 「EVENT_TYPE = 1元分區限制5」 )

代替

sc.cassandraTable(...)。其中( 「EVENT_TYPE = 1)。凡(」 PER PARTITION LIMIT 5 「)

否則一個與關鍵字將被之前生成」 PER PARTITION LIMIT「,這會導致錯誤。