千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  应聘面试  >  大数据面试题  > RDD与DataFrame区别,什么场景用RDD什么场景用DataFrame?

RDD与DataFrame区别,什么场景用RDD什么场景用DataFrame?

来源:千锋教育
发布人:syq
时间: 2022-11-15 19:25:43 1668511543

  区别

  RDD是分布式的不可变的抽象的数据集,比如,RDD[Person]是以Person为类型参数,但是,Person类的内部结构对于RDD而言却是不可知的。

  DataFrame是以RDD为基础的分布式的抽象数据集,也就是分布式的Row类型的集合(每个Row对象代表一行记录),提供了详细的结构信息,即Schema信息。

Spark里kyro序列化

  Spark SQL可以清楚地知道该数据集中包含哪些列、每列的名称和类型。

  应用场景

  RDD的使用场景: 你需要使用low-level的transformation和action来控制你的数据集;

  你得数据集非结构化,比如,流媒体或者文本流; 你想使用函数式编程来操作你得数据,而不是用特定领域语言(DSL)表达;

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

  你放弃使用DataFrame和Dataset来优化结构化和半结构化数据集; DataFrame的使用场景: 你想使用丰富的语义,high-level抽象,和特定领域语言API,那你可DataFrame或者Dataset;

  你处理的半结构化数据集需要high-level表达, filter,map,aggregation,average,sum ,SQL 查询,列式访问和使用lambda函数,那你可DataFrame或者Dataset;

  你想利用编译时高度的type-safety,Catalyst优化和Tungsten的code生成,那你可DataFrame或者Dataset;

  你想统一和简化API使用跨Spark的Library,那你可DataFrame或者Dataset;

  如果你是一个R使用者,那你可DataFrame或者Dataset;

  如果你是一个Python使用者,那你可DataFrame或者Dataset。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT