2016-10-21 6 views
1

Gibt es eine Möglichkeit in den Funken cassandra Anschluss die Seite seitige Filterung zu erreichen, die zu pro Partition Grenze in cql oder perPartitionLimit im nativen cassandra Java-Treiber entsprechen?Funken Cassandra Steckverbinder - perPartitionLimit

beachte hier, dass es Limit pro cassandra Partition nicht pro Funkenpartition (die durch die bestehende Grenzfunktion im Anschluss unterstützt wird).

spark 2.0.1 connector - 2.0.0-M3

Antwort

0

Die Spark Cassandra Stecker in Limit API kann durch C * Token Bereichsgrenze errichtet (Stand 2.0.0-M3) nur.

Wenn Sie Cassandra größer als 3,6 verwenden, können Sie in der API .where manuell ein Limit pro Partition hinzufügen.

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

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

Danke für die schnelle Antwort. Wenn es jedoch in der WHERE API angegeben ist, wird das Schlüsselwort STATICLIMIT als Spaltenname behandelt, daher ein Fehler. verursacht durch: java.io.IOException: Ausnahme bei der Vorbereitung von SELECT ... FROM ... WHERE Token ("src")>? UND Token ("src") <=? AND STATICLIMIT = 1 UND event_type = 1 ALLOW FILTERING: Nicht definierter Spaltenname statisch begrenzt. Cassandra Version 3.9 – ray

+0

Ah Entschuldigung hat das Ende dieses Tickets nicht gelesen. PRO PARTITIONSGRENZE – RussS

1

Danke für die erste Antwort von RussS. Ich habe es mit dem folgenden funktionieren:

Zuerst müssen wir "PER PARTITION LIMIT" verwenden.

Zweitens, wenn Sie andere where-Klauseln haben, muss diese mit einem von ihnen kombiniert werden, wie folgt:.

sc.cassandraTable (...) wo ("event_type = 1 PRO PARTITION LIMIT 5"

)

statt

sc.cassandraTable (...)., wo ("event_type = 1) .wo (" PRO PARTITION LIMIT 5 ")

Andernfalls wird ein Schlüsselwort AND wird vor erzeugt werden" PER PARTITION LIMIT ", wodurch ein Fehler verursacht wird.

Verwandte Themen