SparkStreaming updateStateByKey 保存记录信息
object SparkStreaming_StateFul {
  def main(args: Array[String]): Unit = {
    Logger.getLogger("org.apache.spark").setLevel(Level.WARN)
    Logger.getLogger("org.eclipse.jetty.server").setLevel(Level.OFF)
    val conf = new SparkConf().setMaster("local[2]")
      .setAppName(this.getClass.getSimpleName)
      .set("spark.executor.memory", "2g")
      .set("spark.cores.max", "8")
      .setJars(Array("E:\\ScalaSpace\\Spark_Streaming\\out\\artifacts\\Spark_Streaming.jar"))
    val context = new SparkContext(conf)
    val updateFunc = (values : Seq[Int],state : Option[Int]) => {
      val currentCount  = values.foldLeft(0)(_+_)
      val previousCount = state.getOrElse(0) 查看是否存在,如果存在直接获取
      Some(currentCount + previousCount)
    }
    //step1 create streaming context
    val ssc = new StreamingContext(context,Seconds(10))
    ssc.checkpoint(".")
    //step2 create a networkInputStream on get ip:port and count the words in input stream of \n delimited text
    val lines = ssc.socketTextStream("218.193.154.79",12345)
    val data = lines.flatMap(_.split(" "))
    val wordDstream = data.map(x => (x,1))
    //使用updateStateByKey 来更新状态
    val stateDstream = wordDstream.updateStateByKey[Int](updateFunc)
    stateDstream.print()
    ssc.start()
    ssc.awaitTermination()
  }
}
ssc.checkPoint 如果在集群上运行会报出如下的错误:
org.apache.spark.SparkException: Checkpoint RDD ReliableCheckpointRDD[9] at print at SparkStreaming_StateFul.scala:43(0) has different number of partitions from original RDD MapPartitionsRDD[8] at updateStateByKey at SparkStreaming_StateFul.scala:41(2)
at org.apache.spark.rdd.ReliableRDDCheckpointData.doCheckpoint(ReliableRDDCheckpointData.scala:73)
at org.apache.spark.rdd.RDDCheckpointData.checkpoint(RDDCheckpointData.scala:74)
这是因为没有将文件保存到hdfs环境中导致的
SparkStreaming updateStateByKey 保存记录信息的更多相关文章
- 76.培训记录信息 Extjs 页面
		1.培训记录信息页面jsp <%@ page language="java" import="java.util.*" pageEncoding=&quo ... 
- day101:MoFang:模型构造器ModelSchema&注册功能之手机号唯一验证/保存用户注册信息/发送短信验证码
		目录 1.模型构造器:ModelSchema 1.SQLAlchemySchema 2.SQLAlchemyAutoSchema 2.注册功能基本实现 1.关于手机号码的唯一性验证 2.保存用户注册信 ... 
- Dynamics AX 2012 R2 通过数据源保存记录时触发的方法
		我们都知道,在窗体上保存记录时,会像在表上保存时一样,触发很多方法.这里Reinhard找到了一个流程图,看看都触发了哪些方法,并且这些方法是以怎样的顺序被触发的. 窗体上数据源的Validate() ... 
- 保存登录信息的Cookie加密技术
		所有需要账户登录的website 基本都会想到这样一个问题, 如何保持用户在一定时间内登录有效. 最近本人就在项目中遇到这样的需求,某些页面只能Admin账户登录后访问, 当登录Admin账户后如何才 ... 
- 以下是关于ASP.NET中保存各种信息的对象的比较,理解这些对象的原理,对制作完善的程序来说是相当有必要的(摘至互联网,并非原创--xukunping)
		在ASP.NET中,有很多种保存信息的对象.例如:APPlication,Session,Cookie,ViewState和Cache等,那么它们有什么区别呢?每一种对象应用的环境是什么? 为了 ... 
- 如何进行SCCM中客户端记录信息维护
		SCCM 部署完毕之后,不久我们就会发现客户端代理状态,因为重装系统,非正常的退域,长时间不开机,导致客户端状态有不可用的,有过期的,重复的记录很多.当然我们可以手动的快速删除重复的记录,那么怎么能做 ... 
- Django  通过 session 保存个人信息
		通过 session 保存 个人 信息 登录的视图函数中: def login(request): ''' 登录 ''' err, user, pwd = '', '', '' if request. ... 
- Android_ 重写系统Crash处理类,保存Crash信息到SD卡 和 完美退出程序的方法
		转载时注明地址:http://blog.csdn.net/xiaanming/article/details/9344703 我们开发Android应用的时候,当出现Crash的时候,系统弹出一个警告 ... 
- 在Treeview中节点的data属性中保存记录类型及其消除的办法
		一.保存记录类型在data指针中: procedure TForm1.getheaditems(pp:TfrxBand;hnode:THeadTreeNode;var i:Integer;var j: ... 
随机推荐
- weechat 常用指令
			添加服务器: /server add freenode irc.freenode.org 设置nick: /set irc.server.freenode.nicks "mynick,myn ... 
- 【C++】子类访问父类typedef的问题
			class A { public: typedef int* pointer; }; class B :public A { public: pointer b; }; 这段代码运行没有问题,子类继承 ... 
- wasserstein 距离
			https://blog.csdn.net/nockinonheavensdoor/article/details/82055147 注明:直观理解而已,正儿八经的严谨证明看最下面的参考. Earth ... 
- js改变表单的内容样式
			一.改变单个样式 var obj = document.getElementById("id"); obj.style.cssText = " display: ... 
- JETTY+NGINX
			一.Jetty搭建 1)上传jetty.tar,并且解压(支持war和文件夹) [root@localhost home]# tar -xvf jetty.tar [root@localhost ho ... 
- 连接SQL常见问题
			HTTP Status 500 – Internal Server Error Type Exception Report Message Request processing failed; nes ... 
- AltiumDesigner 网络标号放置技巧
			我们在使用AD画图的过程中,灵活的使用一些小技巧可以使我们的工作事半功倍,今天给大家介绍一种在画原理图过程中的小技巧. 我们在画原理图过程中经常会放置网络标号,尤其是很多芯片管脚上,例如现在我需要在这 ... 
- Ionic3错误: StaticInjectorError[HttpModule]:      NullInjectorError: No provider for HttpModule!
			先在app.module.ts中导入HttpModule,才能在构造函数中注入Http. Ionic自动构建项目时,并没有导入HttpModule. 解决方案:打开app.module.ts,加入导入 ... 
- Python: 高阶函数与lambda表达式
			缘由: python语法简单一看就会,但用在实处,想因为少于实战,总感觉有些捉襟. 翻阅跟踪youtube_dl源码,看到filter()函数用法,及其中lambda表达式,感觉好有意思,就补下课,记 ... 
- [leetcode]103. Binary Tree Zigzag Level Order Traversal二叉树来回遍历
			Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to ... 
