SparkStreaming之单词计数实现在一次程序的运行中,两次发送相同的key可以进行累加
来源:互联网 发布:时代网络大厦 联想电脑 编辑:程序博客网 时间:2024/06/03 18:16
import org.apache.log4j.{Level, Logger}import org.apache.spark.SparkConfimport org.apache.spark.streaming.dstream.ReceiverInputDStreamimport org.apache.spark.streaming.{Seconds, StreamingContext}object WordCountByUpdateBykey { def main(args: Array[String]): Unit = { /** * 这个地方设置的线程数至少是2,因为一个线程用来接收数据 * 另外一个线程是用来处理数据的。 * 如果你只写了一个线程,也不报错,只不过光是接收数据,不处理数据。 */val conf = new SparkConf().setMaster("local[2]").setAppName("test") //初始化一个StreamingContextval ssc = new StreamingContext(conf,Seconds(1))//选择控制台打印日志的类型Logger.getLogger("org.apache.spark").setLevel(Level.WARN) //将ssc持久化到hdfs上ssc.checkpoint("hdfs://hadoop1:9000/streaming") //通过监听一个端口得到一个DStream流 数据的输入 val DStream: ReceiverInputDStream[String] = ssc.socketTextStream("hadoop1",9999) //数据的处理 val wordOneDstream = DStream.flatMap(_.split(",")) .map((_, 1)) /** * updateFunc: (Seq[V], Option[S]) => Option[S] * scala功底: k,v k:String 每一个单词 v:int 出现的次数 * 根据方法的结构是需要我们传进入两个参数,还要有返回值 * 参数一:Seq[V] hadoop,1 hadoop,1 haodop,1 * 对应这个key在这个批次里面出现的次数 * 1,1,1 * 参数二:Option[S] * 代表的是这个key,上一次的中间状态 4 * * 返回值:Option[S] * 把这个key最后的结果返回去 * * Option: * Some * None */ val wordCountDStream = wordOneDstream.updateStateByKey((values: Seq[Int], state: Option[Int]) :Option[Int]=> { val currentCount = values.sum val lastCount = state.getOrElse(0) Some(currentCount + lastCount)}) //数据的输出 wordCountDStream.print() ssc.start() ssc.awaitTermination() ssc.stop() }}
阅读全文
1 0
- SparkStreaming之单词计数实现在一次程序的运行中,两次发送相同的key可以进行累加
- 带有状态的SparkStreaming单词计数程序
- sparkStreaming上次程序运行的结果和这次的结果进行累加
- 单词计数程序在hadoop上的实现
- sql语句怎样实现求在列中选择某些相同名称的行,对这些相同名称行的数据进行累加.
- 两层Makefile的书写方法,可以一次生成在X86和ARM运行的程序
- sparkstreaming版本的单词统计
- SparkStreaming的运行流程
- 005-采用storm程序对目录下文件的单词计数本地模式运行
- 玩转linux主机--hadoop伪分布式配置及单词计数程序的运行
- SparkStreaming之滑动窗口的实现
- 关于程序在vs中可以运行,而生成的exe运行不正常的问题
- python实现单词计数的mapreduce
- 在java程序中实现发送邮件的功能
- 可以进行原地排序的计数排序
- 2014年华为校招机试题和多种代码实现(多个数的最大公约数,相同子串,单词计数)
- Map系列的Properties,实现程序运行次数计数
- C语言实现对输入中的行数,单词个数,字符的个数进行计数
- flex自动导入包
- 每天回顾linux命令(unzip)
- Numpy快速入门教程(一):数组创建与数组访问
- ThinkPHP5/PHP 使用TCPDF 生成PDF文件
- SpringMVC学习之服务器端校验
- SparkStreaming之单词计数实现在一次程序的运行中,两次发送相同的key可以进行累加
- Java抽象类 详解
- 快速排序算法及C++编程
- web前端 网络优化学习笔记
- 读书05《布赞学习技巧——思维导图》
- Eclipse上Maven+Spring MVC的HelloWord项目的tiles整合
- Linux C 单向链表2
- Dynamics 365 app for android下载及IFD模式下非购买证书的app端登录
- npm常用命令