Spark Streaming Kumulierte Wörter zählen

8

Dies ist ein Spark-Streaming-Programm in Scala geschrieben. Er zählt die Anzahl der Wörter aus einer Steckdose alle 1 Sekunde. Das Ergebnis wäre die Wortzählung, z. B. die Wortzählung von Zeit 0 bis 1 und die Wortzählung dann von Zeit 1 bis 2. Aber ich frage mich, ob es eine Möglichkeit gibt, dieses Programm zu ändern, damit wir akkumuliert werden können Wortzahl? Das heißt, das Wort zählt von der Zeit 0 bis jetzt.

%Vor%     
user2895478 16.07.2014, 03:40
quelle

1 Antwort

9

Sie können mit einem StateDStream dafür. Es ist ein Beispiel Stateful Wortzahl von Funken Beispielen .

%Vor%

Die Funktionsweise ist, dass Sie eine Seq[T] für jede Charge zu erhalten, dann aktualisieren Sie ein Option[T] , die wie ein Akkumulator wirkt. Der Grund ist es ein Option ist, weil auf der ersten Charge wird% betragen co_de% und auch so bleiben, wenn es aktualisiert wird. In diesem Beispiel ist die Zählung ein int, wenn Sie mit einer Menge von Daten zu tun mögen Sie vielleicht sogar ein None oder Long

    
aaronman 16.07.2014, 03:48
quelle