Spark Streaming带状态更新
带状态的更新是使用的updateStateByKey方法,里面传入一个函数,函数要自己写,注意需要设置checkpoint
import org.apache.spark.streaming.kafka.KafkaUtils
import org.apache.spark.streaming.{Seconds, StreamingContext}
import org.apache.spark.{SparkConf, SparkContext} /**
* 需要设置checkpoint
* 有状态的计算
*/
class UpdataByKey { }
object UpdataByKey{
//自定义函数进行带状态更新
def addFunc (currValue:Seq[Int],point:Option[Int])={
Some(currValue.sum+point.getOrElse());
} def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("UpdataByKey").setMaster("local[*]")
val sc = new SparkContext(conf)
val ssc = new StreamingContext(sc,Seconds())
val topics = "xiaopeng";
val topicMap = topics.split(",").map((_,)).toMap
val lines = KafkaUtils.createStream(ssc,"192.168.10.219:2181","han",topicMap)
val words = lines.flatMap(line =>line._2.split(" ")).map(word =>(word,))
words.updateStateByKey[Int](addFunc _)
words.print()
ssc.start()
ssc.awaitTermination()
}
}
Spark Streaming带状态更新的更多相关文章
- 周期性清除Spark Streaming流状态的方法
		在Spark Streaming程序中,若需要使用有状态的流来统计一些累积性的指标,比如各个商品的PV.简单的代码描述如下,使用mapWithState()算子: val productPvStrea ... 
- Spark Streaming状态管理函数updateStateByKey和mapWithState
		Spark Streaming状态管理函数updateStateByKey和mapWithState 一.状态管理函数 二.mapWithState 2.1关于mapWithState 2.2mapW ... 
- Spark2.2(三十三):Spark Streaming和Spark Structured Streaming更新broadcast总结(一)
		背景: 需要在spark2.2.0更新broadcast中的内容,网上也搜索了不少文章,都在讲解spark streaming中如何更新,但没有spark structured streaming更新 ... 
- Spark Streaming揭秘 Day14 State状态管理
		Spark Streaming揭秘 Day14 State状态管理 今天让我们进入下SparkStreaming的一个非常好用的功能,也就State相关的操作.State是SparkStreaming ... 
- Spark Streaming之窗口函数和状态转换函数
		流处理主要有3种应用场景:无状态操作.window操作.状态操作. reduceByKeyAndWindow import kafka.serializer.StringDecoder import ... 
- 【Spark】Spark Streaming 动态更新filter关注的内容
		Spark Streaming 动态更新filter关注的内容 spark streaming new thread on driver_百度搜索 (1 封私信)Spark Streaming 动态更 ... 
- spark streaming的有状态例子
		import org.apache.spark._ import org.apache.spark.streaming._ /** * Created by code-pc on 16/3/14. * ... 
- spark 笔记 13: 再看DAGScheduler,stage状态更新流程
		当某个task完成后,某个shuffle Stage X可能已完成,那么就可能会一些仅依赖Stage X的Stage现在可以执行了,所以要有响应task完成的状态更新流程. ============= ... 
- Apache 流框架 Flink,Spark Streaming,Storm对比分析(一)
		本文由 网易云发布. 1.Flink架构及特性分析 Flink是个相当早的项目,开始于2008年,但只在最近才得到注意.Flink是原生的流处理系统,提供high level的API.Flink也提 ... 
随机推荐
- Unity3D Android手机屏幕分辨率问题
			Android手机屏幕分辨率五花八门,导致开发时不好把握,还好各个引擎对这个屏幕分辨率问题都有较好的处理方式:unity3D 也为我们提供了一个不错的解决方案. 在Unity3D 进行 android ... 
- WPF 跟踪命令和撤销命令(复原)
			WPF 命令模型缺少一个特性是复原命令.尽管提供了一个 ApplicationCommands.Undo 命令,但是该命令通常被用于编辑控件(如 TextBox 控件),以维护它们自己的 Undo 历 ... 
- MySQL------Navicat安装与激活
			转载: https://blog.csdn.net/WYpersist/article/details/79834490 
- 超全面的JavaWeb笔记day19<Service>
			今日内容 l Service事务 l 客户关系管理系统 Service事务 在Service中使用ThreadLocal来完成事务,为将来学习Spring事务打基础! 1 DAO中的事务 在DAO中处 ... 
- HTML的框架结构
			<html> <head> <title>HTML的框架结构</title> </head> <frameset frameborde ... 
- 13年10月 月赛第一场 set 4 迷宫问题
			题目 给定一个n*m的迷宫,如S....#E.E其中,S代表开始位置,#代表不可行走的墙,E代表出口.主人公从开始位置出发,每次等概率的随机选择下一个可以行走的位置(可能会发生回溯),直到到达某一个出 ... 
- TestNG入门教程
			阅读目录 TestNG介绍 在Eclipse中在线安装TestNG 在Eclipse中离线安装Testng TestNG最简单的测试 TestNG的基本注解 TestNG中如何执行测试 使用testt ... 
- mac 安装mysql 修改密码
			我草!!! 上网查资料,安装mysql,一大推废话,简直就是他妈的瞎扯淡,真是能他妈的瞎编,草! 为了不让后面的同学看到那些狗屁不通的资料,我把自己安装mysql的步骤,以及修改mysql密码的方法梳 ... 
- ubuntu系统无eth0网卡解决办法
			ubuntu终端下命令ifconfig的问题解决 问题一. ifconfig之后只显示lo,没有看到eth0 问题二. ifconfig之后显示eth0,但是没有显示静态IP地址,即无inet.地址. ... 
- PHP防止跨站表单提交与同站跨页伪造表单的攻击
			在以前的防止跨站攻击的时候,使用了验证提交的页面是否是同一个站点,这样可以防止普通的攻击,ereg("blog.qita.in",$_SERVER['HTTP_REFERER']) ... 
