Spark MLlib(1)

Spark MLlib(1),第1张

Spark MLlib(1) 一.概述

MapReduce每次读写,都需要序列化到磁盘。一个复杂任务,需要多次处理,几十次磁盘读写

Spark只需要一次磁盘读写,大部分处理在内存中进行

spark-shell(交互窗口模式):运行spark-shell需要指向申请资源的standalone spark集群信息,其参数为MASTER,还可以指定executor及driver的内存大小。spark-shell启动完成后,可以在交互窗口中输入scala命令,进行 *** 作,其中spark-shell已经默认生成spark对象

Dataframe-based API is primary API

1.DataSet演进历史 Spark第一代API :RDD

优点

编译时类型安全,编译时就能检查出类型错误

面向对象的编程风格,直接通过类名点的方式来 *** 作数据

缺点

序列化和反序列化的性能开销,无论是集群间的通信,还是IO *** 作都需要对对象的结构和数据进行序列化和反序列化

GC性能开销,频繁创建和销毁对象,势必会增加GC

Spark第二代API :Dataframe

Dataframe核心特征

Schema:包含了ROW为单位的每行数据的列的信息;spark通过schema就能够读懂数据,因此在通信和IO时就只需要序列化和反序列化数据,而结构的部分就可以省略了

off-heap:spark能够以二进制的形式序列化数据(不包括结构)到off-heap中,当要 *** 作数据时,就直接 *** 作off-heap内存

Tungsten:新的执行引擎

Catalyst:新的语法解析框架

优点

off-heap就像地盘,schema就像地图,Spark有地图又有自己地盘了,就可以自己说了算了,不再受JVM的限制,也就不再受GC的困扰了,通过schema和off-heap,Dataframe解决了RDD的缺点。对比RDD提升计算效率,较少数据读取,底层计算优化

缺点

Dataframe解决了RDD的缺点,但是却丢了RDD的优点。Dataframe不是类型安全的,API也不是面向对象风格的

Spark第三代API:DataSet

DataSet 核心:Encoder

2.Spark SQL API介绍

二.DataSet基本 *** 作  1.DataSet的创建

2.DataSet的基础函数  

 3.DataSet的Actions *** 作

 4.DataSet的类型化的转化 *** 作

 5.DataSet内置函数

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5700615.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存