Spark的RDD与DataFrame、DataSet

理解:RDD并不是被DataFrameDataSet取代,他们应用的场景的不同的。

 

Apache Spark 2.0统一API的主要动机是:追求简化Spark。通过减少用户学习的概念和提供结构化的数据进行处理。除了结构化,Spark也提供higher-level抽象和API作为特定领域语言(DSL)。


一、弹性数据集(RDD

RDDSpark建立之初的核心API RDD是不可变分布式弹性数据集,在Spark集群中可跨节点分区,并提供分布式low-level API来操作RDD,包括transformationaction

那什么时候用RDD呢?

使用RDD的一般场景:

·        你需要使用low-leveltransformationaction来控制你的数据集;

·        你得数据集非结构化,比如,流媒体或者文本流;

·        你想使用函数式编程来操作你得数据,而不是用特定领域语言(DSL)表达;

·        你不在乎schema,比如,当通过名字或者列处理(或访问)数据属性不在意列式存储格式;

·        你放弃使用DataFrameDataset来优化结构化和半结构化数据集

 

二、DataFrame

DataFrameRDD相同之处,都是不可变分布式弹性数据集。不同之处在于,DataFrame的数据集都是按指定列存储,即结构化数据。类似于传统数据库中的表。DataFrame的设计是为了让大数据处理起来更容易。DataFrame允许开发者把结构化数据集导入DataFrame,并做了higher-level的抽象; DataFrame提供特定领域的语言(DSLAPI来操作你的数据集。

三、Dataset

Spark 2.0中,Dataset具有两个完全不同的API特征:强类型API和弱类型API,见下表。 DataFrame是特殊的Dataset其每行是一个弱类型JVM object相对应地,Dataset是强类型JVM object的集合,通过Scalacase class或者Java class

 

原文链接:http://mp.weixin.qq.com/s?__biz=MzI0MDIxMDM0MQ==&mid=2247483705&idx=1&sn=5e836945a9951e0cbfd2e3f3dfed4f82&scene=1&srcid=0715CPD32NuX1HAbY8iDldN3&from=groupmessage&isappinstalled=0&utm_source=tuicool&utm_medium=referral

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值