Spark RDD,DataFrame和DataSet的区别

RDD:编译时类型安全(编译时就进行类型检查),采用面向对象的编程风格。需要序列化和反序列化(对结构和数据),增加GC(垃圾回收)性能开销。

DataFrame:引入了schema(结构化,RDD中的每行数据结构相同)和off-heapJVM堆以外的内存直接受操作系统管理,Spark可以以二进制的形式序列化数据到off-heap中,无GC开销)。

DataSet:结合RDDDataFrame的优点,序列化数据时,使用Encoder产生字节码与off-heap进行交互,从而达到按需访问数据的效果,而不用反序列化整个对象。

一个Dataset是一个分布式的数据集合。一个Dataset可以从JVM对象来构造并且使用转换功能。

一个DataFrame是一个DataSet组织成的指定列。它的概念类似于关系型数据库。在ScalaJava中,一个DataFrame所代表的是一个或多个RowDataset

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值