Scala简单单机actorwordcount
来源:互联网 发布:彭德怀朝鲜战争知乎 编辑:程序博客网 时间:2024/06/06 09:19
import scala.actors.{Actor, Future}import scala.collection.mutable.{HashSet, ListBuffer}import scala.io.Sourceclass Task extends Actor { override def act() : Unit = { loop { react { case SubmitTask(filename) => { val result = Source.fromFile(filename).getLines().flatMap(_.split(" ")).map((_, 1)).toList.groupBy(_._1).mapValues(_.size) sender ! ResultTask(result) } case StopTask => { exit() } } } }}case class SubmitTask(filename : String)case class ResultTask(result : Map[String, Int])case object StopTaskobject ActorWordCount { def main(args: Array[String]): Unit = { val replySet = new HashSet[Future[Any]]() val resultList = new ListBuffer[ResultTask]() val files = Array[String]("f://words.txt", "f://words.log") for (f <- files) { val actor = new Task val reply = actor.start() !! SubmitTask(f) replySet += reply } while (replySet.size > 0) { val toCompute = replySet.filter(_.isSet) for (f <- toCompute) { val result = f.apply().asInstanceOf[ResultTask] resultList += result replySet -= f } Thread.sleep(100) } //汇总功能 val fr = resultList.flatMap(_.result).groupBy(_._1).mapValues(_.foldLeft(0)(_+_._2)) println(fr) }}
阅读全文
0 0
- Scala简单单机actorwordcount
- scala-单机wordcount
- 使用 scala 实现单机版 WordCount
- 简单的单机加密
- 简单的单机聊天程序
- Zookeeper简单应用(单机)
- 简单的鼠标单机跟随
- Scala简单的例子
- Scala 集合简单示例
- scala 实现简单爬虫
- Windows下单机安装scala-Spark开发环境
- Scala 学习(六)--- 单机实现wordcount详细解读
- spark读取redis数据(交互式,scala单机版,java单机版)
- spark读取redis数据(交互式,scala单机版,java单机版)
- scala安装 scala eclipse插件安装 scala简单示例
- scala起步---安装scala eclipse插件 安装scala简单示例
- Hadoop HBase 单机环境简单配置教程
- Hadoop HBase 单机环境简单配置教程
- Spring官网下载各版本jar包
- Python基础学习随笔一
- C++刷题笔记(一)
- Not found batch_norm/moving_mean/... , batch_norm/moving_variance/... in checkpoint at eval
- 装饰器
- Scala简单单机actorwordcount
- jquery datagrid 页面加载过慢
- 微信小程序获取scope中权限管理
- software testing framework
- gooderp启动失败(win版本)
- Android 插件化 RePlugin 入坑记录二
- 折半算法JAVA实现
- System Design——系统设计过程(一)约束和用例
- 204. Count Primes