当前位置: 首页 > news >正文

旅游网站开发实现开题报告新seo排名点击软件

旅游网站开发实现开题报告,新seo排名点击软件,阜宁做网站价格,巴中商城网站建设文章目录 1 什么是序列化2.RDD中的闭包检查3.Kryo 序列化框架 1 什么是序列化 序列化是指 将对象的状态信息转换为可以存储或传输的形式的过程。 在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的…

文章目录

      • 1 什么是序列化
      • 2.RDD中的闭包检查
      • 3.Kryo 序列化框架

1 什么是序列化

序列化是指 将对象的状态信息转换为可以存储或传输的形式的过程。 在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。

2.RDD中的闭包检查

从计算的角度, 算子以外的代码都是在 Driver 端执行, 算子里面的代码都是在 Executor端执行。
那么在 scala 的函数式编程中,就会导致算子内经常会用到算子外的数据,这样就形成了闭包的效果,如果使用的算子外的数据无法序列化,就意味着无法传值给 Executor端执行,就会发生错误,所以需要在执行任务计算前,检测闭包内的对象是否可以进行序列化,这个操作我们称之为闭包检测。Scala2.12 版本后闭包编译方式发生了改变。

package bigdata.wordcount.xuliehuaimport org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.rdd.RDDobject SerializableDemo01 {def main(args: Array[String]): Unit = {//1.创建 SparkConf 并设置 App 名称val conf: SparkConf = new SparkConf().setAppName("SparkCoreTest").setMaster("local")val sc: SparkContext = new SparkContext(conf)//3.创建一个 RDDval rdd: RDD[String] = sc.makeRDD(Array("hello world", "hello spark", "Scala", "Java"))//3.1 创建一个 Search 对象val search = new Search("h")//筛选出单词首字母为h的单词search.getMatch1(rdd).collect().foreach(println)println("=>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")search.getMatch2(rdd).collect().foreach(println)//4.关闭连接sc.stop()}}//在类构造器中以val/var修饰的变量为类的实例变量,在类中调用的时候实际是 实例.变量
//此时rdd内要用到次变量的化,需要进行序列化操作
class Search(var query:String) extends Serializable
{def isMatch(s: String): Boolean = {s.contains(query)}// 函数序列化案例def getMatch1(rdd: RDD[String]): RDD[String] = {rdd.filter(isMatch)}// 属性序列化案例def getMatch2(rdd: RDD[String]): RDD[String] = {rdd.filter(x => x.contains(query))}}

在这里插入图片描述

如果Search类不实现Serializable特质的话,会通不过闭包检查,报出错误如下:
在这里插入图片描述
可以直接定义样例类,因为样例类自动继承了序列化特质,这样也可以通过rdd的闭包检查

case class Search(var query:String) 
{def isMatch(s: String): Boolean = {s.contains(query)}// 函数序列化案例def getMatch1(rdd: RDD[String]): RDD[String] = {//rdd.filter(this.isMatch)rdd.filter(isMatch)}// 属性序列化案例def getMatch2(rdd: RDD[String]): RDD[String] = {//rdd.filter(x => x.contains(this.query))rdd.filter(x => x.contains(query))//val q = query//rdd.filter(x => x.contains(q))}}

3.Kryo 序列化框架

Java 的序列化能够序列化任何的类。但是比较重(字节多),序列化后,对象的提交也比较大。Spark 出于性能的考虑,Spark2.0 开始支持另外一种 Kryo 序列化机制。Kryo 速度是 Serializable 的 10 倍。当 RDD 在 Shuffle 数据的时候,简单数据类型、数组和字符串类型已经在 Spark 内部使用 Kryo 来序列化。

在使用Kryo序列化框架的时候,也需要继承序列化特质。

Kryo参考

http://www.mmbaike.com/news/48354.html

相关文章:

  • 批发电商做的好的网站百度人工智能开放平台
  • 珠海营销营网站建设公司游戏推广文案
  • 免费发布网站建设信息windows10优化软件
  • 网站开发语言哪一种好些浙江新手网络推广
  • 永康城乡建设局网站邹平县seo网页优化外包
  • 找人做网站需要多少钱外贸网站建设
  • 大连做网站排名长春关键词优化公司
  • 正版厦门网站设计公司某个产品营销推广方案
  • 网站开发流程网络自动推广软件
  • 广告设计公司香港酒店vi设计seo是怎么优化上去
  • 网页.网站.主页.网址.域名有什么联系互联网营销的特点
  • 梁平集团网站建设企业推广软文范文
  • 简单模板网站制作时间杭州网站推广找哪家
  • 软件优化网站湖南网站推广公司
  • 做网站如何连数据库阿里大数据分析平台
  • perl网站开发厦门网站到首页排名
  • 网站开发语言比例赣州网站建设
  • wordpress隐藏更新提示网站优化是什么
  • 宁慈建设网站百度云手机app下载
  • 新准则中公司网站建设费用计入什么科目网络服务包括哪些内容
  • 麻油厂网站怎么做自己如何免费做网站
  • 欧美网站设计指数查询
  • 做婚庆的网站有哪些软文写作服务
  • 做网站烧钱吗成都网站建设系统
  • 如何做网站内链西安关键词优化排名
  • 防伪网站怎么做阿里云网站搭建
  • 十大个人博客网站北京百度推广公司
  • 黄村网站建设报价今日国际重大新闻事件
  • 网站域名到期登不上是怎么回事网站的宣传推广方式
  • 校园网站建设网络营销推广服务商