Spark-stream基础---sparkStreaming和Kafka整合wordCount单词计数
*需求:kafka消费数据到sparkStreaming计算*///1.创建StreamingContext//2.接入kafka数据源(如何访问kafka集群?zookeeper)//访问组//访问主题//创建Dstream//3.处理数据//4.启动streaming程序r.print()//5.关闭资源。
import org.apache.spark.streaming.kafka.KafkaUtils
import org.apache.spark.streaming.{Milliseconds, StreamingContext}
/*
需求:kafka消费数据到sparkStreaming计算
*/
object KafkaWordCount {
def main(args: Array[String]): Unit = {
//1.创建StreamingContext
val conf: SparkConf = new SparkConf().setAppName(“kafkaWordCount”).setMaster(“local[2]”)
val ssc: StreamingContext = new StreamingContext(conf,Milliseconds(2000))
//2.接入kafka数据源(如何访问kafka集群?zookeeper)
val zkQuorm: String = “192.168.64.111,192.168.64.112,192.168.64.113”
//访问组
val groupID = “g1”
//访问主题
val topic: Map[String, Int] = MapString,Int
//创建Dstream
val kafkaStream: ReceiverInputDStream[(String, String)] = KafkaUtils
.createStream(ssc,zkQuorm,groupID,topic)
//3.处理数据
val data: DStream[String] = kafkaStream.map(_._2)
//4.启动streaming程序
val r: DStream[(String, Int)] = data.flatMap(.split(" ")).map((,1)).reduceByKey(+)
r.print()
ssc.start()
//5.关闭资源
ssc.awaitTermination()
}
}
结果

2.0版本单词计数
将历史记录保存下来,显示出来,主要使用dataFunc
package day08
import org.apache.spark.{HashPartitioner, SparkConf}
import org.apache.spark.streaming.dstream.{DStream, ReceiverInputDStream}
import org.apache.spark.streaming.kafka.KafkaUtils
import org.apache.spark.streaming.{Milliseconds, StreamingContext}
object StatusKafkaWordCount {
//保持历史状态 wc 单词,次数 聚合的key
//第一个类型:单词,第二个类型:在每一个分区中出现的次数累加的结果
//第三个类型:是以前的结果
val updateFunc = (iter:Iterator[(String,Seq[Int],Option[Int])]) => {
//总的次数= 当前出现的次数 + 以前返回的结果
iter.map(t => (t._1, t._2.sum + t._3.getOrElse(0)))
}
def main(args: Array[String]): Unit = {
//1.创建程序入口
val conf: SparkConf = new SparkConf().setAppName(“StateKafkaWC”).setMaster(“local[2]”)
val ssc: StreamingContext = new StreamingContext(conf,Milliseconds(2000))
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。


二、Python必备开发工具
工具都帮大家整理好了,安装就可直接上手!
三、最新Python学习笔记
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

四、Python视频合集
观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

五、实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
六、面试宝典


简历模板
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python爬虫全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:python)
能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:python)
[外链图片转存中…(img-RGRHRm5R-1710984690028)]
更多推荐
所有评论(0)