2016-04-19 6 views
1

Ich benutze Spark und Scala und ich möchte eine Fensteroperation mit Länge in Anzahl der Objekte, dh das Fenster beginnt leer, als der Strom initiiert die Objekte in der gespeichert werden Fenster, bis es 10 Objekte enthält und wenn der 11. kommt, wird der erste fallen gelassen.Spark Streaming Scala Fensterlänge nach Anzahl der Objekte

Ist das möglich oder muss ich eine andere Struktur wie eine Liste oder ein Array verwenden? Die Dokumentation (http://spark.apache.org/docs/latest/streaming-programming-guide.html#window-operations) und etwas googeln beziehen sich nur auf ein zeitbasiertes Fenster (Länge und Intervall).

Vielen Dank im Voraus.

Antwort

2

Fenster im Spark-Streaming wird durch windowDuration und slideDuration (optional) gekennzeichnet. Es ist also ein Zeitfenster. Aber Sie können in Betracht ziehen, Apache Flink zu verwenden. Es unterstützt beide count windows and time windows. Aber im Vergleich zu Spark hat Flink eine andere Streaming-Ideologie. Es verarbeitet eingehende Ereignisse bei ihrem Eintreffen (Spark verarbeitet Ereignisse in Mikro-Batches). Daher kann Flink einige Einschränkungen haben. Probieren Sie es aus, wenn es Ihren Bedürfnissen entspricht.

+0

Vielen Dank für Ihre Eingabe. Ich werde es mir ansehen. – avlach

+0

Sollte diese Antwort akzeptieren :). Es gibt eine doppelte Frage, die darauf verweist, und wir können nicht darauf verweisen, da sie nicht geschlossen ist. –