Hier ist mein Fall: Ich erhalte Daten von verschiedenen Geräten, die ihre eigene Unterschrift, einen Zeitstempel und ein Flag haben. I-Filter dann die (flag==SAVE_VALUE)
in einer Datei, die eine foreachRDD
Funktion verwenden, aber nur, wenn es geht um diesen Zustand:Sollte ich die Zustandsberechnung verwenden? Spark Streaming-Status Berechnung Erklärung
(it is the first time I receive this signature)
OR
(I already have this signature && the timestamp is older than an hour)
Dies, bis ich in einer lokalen Umgebung war, bedeutete für mich eine Karte zu verwenden, wo ich alle gespeicherten die IDs und der letzte empfangene Zeitstempel. Gerade jetzt möchte ich diese Logik in einem Spark wie einen bewegen. Wie soll ich das machen?
Ich fühle mich dies ein Fall für eine Stateful DSTREAM ist, aber ich kann nicht ganz verstehen:
- Wie soll ich RDD in einem DSTREAM eine kartenähnliche speichern? Oder wie erstelle ich eine einzige "Karte RDD"
- Wie kann ich die neuen Daten vergleichen?
Danke, behoben :) –
@DanielZolnai Danke. Ich hatte bereits über mapWithState() gelesen, bevor ich meine Frage posten konnte, aber ich habe nicht verstanden, * wie * es mir hätte helfen können. Ich kann das Konzept verstehen oder zumindest die Gründe dafür sehen, aber ich kann keinen Weg finden, es umzusetzen. – Vale
Dieses Beispiel ist meiner Meinung nach ziemlich gut: https://docs.cloud.databricks.com/docs/spark/1.6/examples/Streaming%20mapWithState.html –