Spark中RDD操作

Transformations(转换)

Transformation说明
map(func)根据传入的函数处理原有的RDD对象中每一个元素,每一个新元素处理完成后返回一个对象,这些新对象组装得到一个新的RDD,新的RDD和旧的RDD元素都是一一对应的
filter(func)根据传入的函数来过滤RDD中每一个元素,通过过滤条件的的元素组成一个新的RDD
flatMap(func)先进行map操作,然后把map操作得到的结果合并为一个对象,假如map操作返回的是Array[Array[String]],那flatMap操作得到的应该是Array[String],自动将多个字符串数组合并为一个,另外一个意义是一个旧的RDD元素可以生成多个新元素,一对多的关系
mapPartitions(func)可以将其看成map,但是他处理的是每个单独分区中的数据,然后把各个分区的值合并
mapPartitionsWithIndex(func)把分区的索引值(index)交给输入函数处理
sample(withReplacement, fraction, seed)取样函数,分放回和不放回,由withReplacement参数决定,fraction:抽样率
union(otherDataset)两个RDD合并,不去重
intersection(otherDataset)两个RDD交集且去重
distinct([numTasks]))去重
groupByKey([numTasks])根据key来分组,同一个key的值放在一个集合中
reduceByKey(func, [numTasks])将key对应的值交给传入的函数处理
aggregateByKey(zeroValue)(seqOp, combOp, [numTasks])对key对应的值做聚合计算,返回的还是Pair RDD对象
sortByKey([ascending], [numTasks])PairRDD以key值进行排序
join(otherDataset, [numTasks])sql语句中内关联
cogroup(otherDataset, [numTasks])SQL中的全外关联full outer join
cartesian(otherDataset)两个RDD进行笛卡尔集的操作,返回CartesianRDD
pipe(command, [envVars])将RDD的每个数据分片都接到shell-command的标准输入上。经过shell-command的输出数据会重新生成新的RDD,新RDD是string类型的RDD
coalesce(numPartitions)合并分区,参数执行合并后的分区大小
repartition(numPartitions)进行shuffle的coalesce操作
repartitionAndSortWithinPartitions(partitioner)该方法依据partitioner对RDD进行分区,并且在每个结果分区中按key进行排序;通过对比sortByKey发现,这种方式比先分区,然后在每个分区中进行排序效率高,这是因为它可以将排序融入到shuffle阶段

Action(动作)

Action说明
reduce(func)根据映射函数f,对RDD中的元素进行二元计算,返回计算结果。
collect()将RDD转换为数组
count()RDD的元素数量
first()返回RDD第一个元素
take(n)将RDD的前n个元素转换为数组返回
takeSample(withReplacement, num, [seed])随机取出num个元素转换为数组返回
takeOrdered(n, [ordering])取n个元素,用某个比较器排序后返回
saveAsTextFile(path)RDD保存到文件
saveAsSequenceFile(path)保存为hadoop SequenceFile格式文件
saveAsObjectFile(path)用于将RDD中的元素序列化成对象,存储到文件中
countByKey()PairRDD,计算Key的数量
foreach无返回的,用于遍历RDD,将函数f应用于每一个元素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值