⑧RDD,DataFrame,DataSet对比

 RDD困境

       map、filter,它们都需要一个辅助函数 f 来作为形参,通过调用 map(f)、filter(f) 才能完成计算。以 map 为例,我们需要函数 f 来明确对哪些字段做映射,以什么规则映射。filter 也一样,我们需要函数 f 来指明以什么条件在哪些字段上过滤。这样一来,Spark 只知道开发者要做 map、filter,但并不知道开发者打算怎么做 map 和 filter。换句话说,对于 Spark 来说,辅助函数 f 是透明的。在 RDD 的开发框架下,Spark Core 只知道开发者要“做什么”,而不知道“怎么做”。

       在 RDD 开发框架下,Spark Core 的优化空间受限。绝大多数 RDD 高阶算子所封装的封装的计算逻辑(形参函数 f)对于 Spark Core 是透明的,Spark Core 除了用闭包的方式把函数 f 分发到 Executors 以外,没什么优化余地。而这,就是 RDD 之殇

DataFrame

        比 RDD,DataFrame 到底有何不同呢?我们不妨从两个方面来对比它们的不同:一个是数据的表示形式(Data Representation),另一个是开发算子。

        DataFrame 与 RDD 一样,都是用来封装分布式数据集的。但在数据表示方面就不一样了,DataFrame 是携带数据模式(Data Schema࿰

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值