Spark Streaming Update By Key A check point
Spark Streaming
Функция Update. By. Key //A check point directory is needed by Spark for stateful stream process streaming. Context. checkpoint("/tmp/spark_checkpoint") val pairs = stream. map(word => (word, 1)). reduce. By. Key(_ + _). update. State. By. Key{(new. Data: Seq[Int], state: Option[Int]) => val new. State = state. get. Or. Else(0) + new. Data. sum Some(new. State) } pairs. print()
Пример Word. Count
Output sinks File sink Сохраняет содержимое стрима в файлы • write. Stream. format("parquet"). option("path", "path/to/destination/dir"). start() Kafka sink Пишет содержимое стрима в топик Kafka • write. Stream. format("kafka"). option("kafka. bootstrap. servers", "host 1: port 1, host 2: port 2"). option("topic", "updates"). start() Foreach sink К каждой записи в стриме применяет функцию func • write. Stream. foreach(func). start() Console sink Пишет в консоль в момент срабатывания Append или Complete • write. Stream. format("console"). start() Memory sink • write. Stream. format("memory"). query. Name("table. Name"). start() Содержимое стрима сохраняется в in-memory таблицу
Ссылки • Официальная документация: http: //spark. apache. org/docs/latest/ • Хорошая статья по тому, как это работает: http: //datastrophic. io/core-concepts-architectureand-internals-of-apache-spark/ • Веселый доклад с конференции: https: //www. youtube. com/watch? v=XLSQJQjm. FFw • Онлайн книжка: https: //jaceklaskowski. gitbooks. io/mastering-apache -spark/content/
- Slides: 11