spark rdd分区数据支持哪些压缩格式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spark rdd分区数据支持哪些压缩格式相关的知识,希望对你有一定的参考价值。

参考技术A 作者:张云聪  链接:/question/48684460/answer/112346482  来源:知乎  著作权归作者所有,转载请联系作者获得授权。  RDD中可以存储任何的单机类型的数据,但是,直接使用RDD在字段需求明显时,存在算子难以复用的缺点。  例如,现在RDD存的数据是一个Person类型的数据,现在要求所有每个年龄段(10年一个年龄段)的人中最高的身高与最大的体重。  使用RDD接口,因为RDD不了解其中存储的数据的具体结构,数据的结构对它而言是黑盒,于是这就需要用户自己去写一个很特化的聚合的函数来完成这样的功能。  而有了DataFrame,则框架会去了解RDD中的数据是什么样的结构的,用户可以说清楚自己对每一列进行什么样的操作,这样就有可能可以实现一个算子,用在多个列上,比较容易进行算子的复用。甚至,未来又要同时求出每个年龄段内不同的姓氏有多少个,则使用RDD接口,之前的函数需要改动很大才能满足需求,而使用DataFrame接口,则只需要添加对这一个列的处理,原来的max/min的相关列处理都可保持不变。  总而言之,DataFrame相关接口就是RDD的一个扩展,让RDD了解了RDD中存储的数据包含哪些列,并可以在列上进行操作。  另外,DataFrame基本上快要被Dataset接口取代了,你可以再去了解下Dataset接口。  最后,打个广告:如果是百度内部的同学看到我的答案,有类似需求时,欢迎使用我们的Bigflow项目,API设计得比Spark更简单易用,且用户代码可复用性更强。我们的Schema相关接口在代码可复用程度上要远超DataFrame/Dataset——厂外同学听我在这儿“吹”不信就罢了,直接忽略即可,咱们也不用争辩,短期内暂无法给你证明。

spark的rdd详解1

 

1,rdd的转换和行动操作

 

技术分享图片

 

 

2,创建rdd的2种方式

1,通过hdfs支持的文件系统,没有真正把数据放rdd,只记录了一下元数据

2,通过scala的集合或者数组并行化的创建rdd

技术分享图片

 

3,rdd的5大特点

1,rdd是分区的,可以指定分区数

2,算子的方法都会作用在每个分区

3,rdd之前有一系列的依赖,所有依赖形成DAG图,DAG计算单位是阶段

4,k-v的rdd可以选择分区器,默认的是hash-partitioned

5,会选择最优的位置计算每个分区,避免跨网络传输数据

 技术分享图片

 

以上是关于spark rdd分区数据支持哪些压缩格式的主要内容,如果未能解决你的问题,请参考以下文章

hive 的支持的文件类型与 压缩格式

压缩文件的格式都有哪些

如何通过 pyspark 以 gzip 格式保存 spark RDD

5,Spark中文件格式压缩和序列化

Spark SQL - gzip vs snappy vs lzo 压缩格式之间的区别

压缩软件都有哪些?