推ter 流處理框架:Summingbird
Summingbird是一個庫,能夠讓你編寫 MapReduce 程序看起來像原生的 Scala 或 Java 集合。并在一些著名的分布式MapReduce平臺上轉換并執行他們,包括 Storm 和 Scalding.。
在純Scala中的一個字數計算聚集可能是這樣的:
def wordCount(source: Iterable[String], store: MutableMap[String, Long]) = source.flatMap { sentence => toWords(sentence).map(_ -> 1L) }.foreach { case (k, v) => store.update(k, store.get(k) + v) }
在Summingbird計算的話看起來像這樣:
def wordCount[P <: Platform[P]] (source: Producer[P, String], store: P#Store[String, Long]) = source.flatMap { sentence => toWords(sentence).map(_ -> 1L) }.sumByKey(store)
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!