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

网站开发 调试网站建设模板

网站开发 调试,网站建设模板,服装设计软件有哪些软件,手机网站建设的公司文章目录 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.shuangfujiaoyu.com/news/54694.html

相关文章:

  • 城关区建设局网站精品成品网站1688
  • 网站备案管理办法品牌推广案例
  • 如何建立asp网站app推广拉新工作可靠吗
  • 网站制作和网页制作区别北京seo实战培训班
  • 做投标的在什么网站找信息今日的新闻头条10条
  • 网站域名怎样注销淘宝流量平台
  • 刷单网站建设产品软文代写
  • 给女朋友做的网站营销软文500字
  • 云南网站制作价格百度云搜索资源入口
  • 怎么做qq钓鱼网站2023年7月疫情还会严重吗
  • 如何套用网站模板济南网站seo
  • 色系网站哪里有爱站工具网
  • 做外贸通常用哪些网站谷歌浏览器在线入口
  • 外贸网站定制开发爱站网长尾关键词
  • ASP 动态网站建设竞价排名的服务模式是
  • 网站前台代码百度网盘搜索引擎入口在哪
  • 安阳县政府官网seo推广要多少钱
  • ai制作海报南宁百度seo价格
  • 垂直网站导航是谁做的南京百度推广优化
  • 全国疫情地图实时动态搜索引擎优化的方法与技巧
  • 网站功能列表网站推广交换链接
  • 洛阳响应式建站百度怎么推广产品
  • 做自己的彩票网站网络营销和传统营销的区别有哪些
  • 学校网站制作多少钱做什么推广最赚钱
  • 免费软件安装网站社区建站网站系统
  • 门户网站开发平台百度推广优化技巧
  • 网站怎么做短信营销电商平台开发需要多少钱
  • wordpress主题知更鸟美化成都sem优化
  • 通州网站制作最近比较火的关键词
  • wordpress 7b2优化是什么意思