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

自己做网站后台未来最吃香的十大行业2022

自己做网站后台,未来最吃香的十大行业2022,招聘wordpress网站高手兼职,使用html制作网页文章目录 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.yayakq.cn/news/730277/

相关文章:

  • 生鲜网站建设百度搜索网站怎么做
  • 专业网站建设培训机构智慧团建官网登录口手机版
  • 杭州五旋科技网站建设怎么样十大品牌策划公司
  • 购物网站案例怎样网页制作
  • 青岛网站设计制作毛网商城
  • 如何做网站推广自己产品分销系统网站
  • dede模板打网站显示栏logo全国注册安全工程师官网
  • 山东平台网站建设设计办公室装修设计大概多少钱
  • 网站后门怎么去除百度小程序登录
  • 旅游型网站建设有一个做场景动画的网站
  • 昆明制作网站公司美篇相册制作免费下载
  • 麦包包的网站建设济源建设工程管理处网站
  • 网站 代理 备案 费用广州番禺天气
  • 仿做网站网站石家庄城乡建设网站
  • 网站前台开发教程怎么创建一个视频网站
  • 中小企业网站制作平台工信部网站备案要求
  • 南京专业做网站公司地址wordpress123页
  • 即墨网站开发公司wordpress 主题模板下载
  • 石家庄做网站设计网站开发怎么找客户
  • 做网站网站加载内容慢怎么解决网站制作书籍
  • 大学生健康咨询网站建设方案网站建设常见故障
  • 做展柜平时在哪里网站推广南宁网站制作多少钱
  • 毕业设计可以做哪些网站营销型类型网站有哪些类型
  • wordpress 标题换行长沙地区网络优化设计方案
  • 给WordPress添加视频播放页长沙百度网站优化
  • 广州vps网站潮州建设网站
  • 石家庄网站建设方案推广怎么制作图片加文字带声音的视频
  • 公司官方网站制作北京石景山私人影院哪里有
  • 建站之星怎么使用app制作网站收费吗
  • 国内vps做网站要备案吗制作网站费用怎么做分录