2016-03-21 9 views
2

Ich habe kontinuierlich Daten von einer externen Quelle in Cassandra geschrieben.Streamen Sie die neuesten Daten in Cassandra mit Spark-Streaming

Nun, ich bin mit Funken Streaming kontinuierlich diese Daten von Cassandra mit dem folgenden Code zu lesen:

val ssc = new StreamingContext(sc, Seconds(5)) 

val cassandraRDD = ssc.cassandraTable("keyspace2", "feeds") 


val dstream = new ConstantInputDStream(ssc, cassandraRDD) 


dstream.foreachRDD { rdd => 
println("\n"+rdd.count()) 
} 

ssc.start() 
ssc.awaitTermination() 
sc.stop() 

jedoch die folgende Zeile ein:

val cassandraRDD = ssc.cassandraTable("keyspace2", "feeds")

nimmt die gesamte Datentabelle von Cassandra jedes Mal. Jetzt sind nur die neuesten Daten in der Tabelle gespeichert.

Was ich tun möchte, ist Spark-Streaming lesen nur die neuesten Daten, dh die Daten nach dem vorherigen Lesen hinzugefügt.

Wie kann ich das erreichen? Ich habe versucht, Google dies zu tun, aber sehr wenig Dokumentation diesbezüglich.

Ich verwende spark 1.4.1, scala 2.10.4 und cassandra 2.1.12.

Danke!

EDIT:

Die vorgeschlagene doppelte Frage (von mir gefragt) ist kein Duplikat, weil es über Ansteckfunken Streaming und Cassandra spricht und diese Frage ist über Streaming nur die neuesten Daten. BTW, Streaming von Cassandra ist möglich mit dem Code, den ich zur Verfügung gestellt habe. Es braucht jedoch immer die gesamte Tabelle und nicht nur die neuesten Daten.

+2

Mögliche Duplikat [wie man connect spark streaming mit cassandra?] (http://stackoverflow.com/questions/34993290/how-to-connect-spark-streaming-with-cassandra) – maasg

+0

Streaming von Cassandra ist im Moment nicht möglich. Siehe hierzu: http://stackoverflow.com/questions/34993290/how-to-connect-spark-streaming-with-cassandra – maasg

+0

ha. Ich habe gerade bemerkt, dass du diese Frage gestellt hast. Die Antwort hat sich noch nicht geändert, fürchte ich. – maasg

Antwort

Verwandte Themen