Spark篇之转换算子

一、前述

Spark中默认有两大类算子,Transformation(转换算子),懒执行。action算子,立即执行,有一个action算子 ,就有一个job。

通俗些来说由RDD变成RDD就是Transformation算子,由RDD转换成其他的格式就是Action算子。

RDD五大特性

1、RDD由一系列partition组成

2、算子作用在partition上

3、RDD之间存在一系列依赖关系

4、分区器作用在k,v格式的RDD上

5、partiton提供最佳的计算位置

sc.textFile()调用的是mr底层读取hads数据的方法,先进行切片(split)

一个split对应一个block块,split对应一个RDD的一个partition

二、常用Transformation算子

1、filter

过滤符合条件的记录数,true保留,false过滤掉。

2、map

将一个RDD中的每个数据项,通过map中的函数映射变为一个新的元素。

特点:输入一条,输出一条数据。

3、flatMap(压扁输出,输入一条,输出零到多条)

先map后flat。与map类似,每个输入项可以映射为0到多个输出项。

4、sample(随机抽样)

随机抽样算子,根据传进去的小数按比例进行又放回或者无放回的抽样。(True,fraction,long)

True 抽样放回

Fraction 一个比例 float 大致 数据越大 越准确

6、sortByKey/sortBy

作用在K,V格式的RDD上,对key进行升序或者降序排序。

    原文作者:自由与生命的追寻者
    原文地址: https://zhuanlan.zhihu.com/p/64020622
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞