Spark中的RDD算子(二:Action)

Action:

执行一些action操作需要导入一些模块

from operator import add

from operator import mul

from operator import mod

1、collect

2、saveAsText

3、first:

        返回第一个RDD元素 :first=take(1)

4、take:

        取前N个数值,Take the first num elements of the RDD.

Examples :

>>> sc.parallelize([2, 3, 4, 5, 6]).cache().take(2)

[2, 3]

5、top:

        取topN Get the top N elements from an RDD.

        Examples :

        >>> sc.parallelize([2, 3, 4, 5, 6], 2).top(2)

        [6, 5]

6、takeSample:

        takeSample(self, withReplacement, num, seed=None)

        Examples :0-10范围取数,取20个数,种子=1 

        >>> rdd = sc.parallelize(range(0, 10))

        >>> len(rdd.takeSample(True, 20, 1)) 20

7、foreach():

        Examples :

        >>> def f(x): print(x)

        >>> sc.parallelize([1, 2, 3, 4, 5]).foreach(f)

        等价于

        >>> rdd2.foreach(lambda x:print(x))

8、coalesce:

        用来指定分区的加减,如果加减的分区超过了第一开始指定的分区数,coalesce()指定的分区数不生效,需要开启Fasle使分区重新shuffle:coalesce(self, numPartitions, shuffle=False)

9、fold:

        fold: 等价于 aggregate

        ( zeroValue:自然值, seqOp:分区内, combOp:分区间)=fold(自然值,分区内分区间)

         计算所有分区的结果返回一个值,fold内含有自然值,在进行operator操作时候,会在分区内与分区间进行fold操作

        例:自然值为1 总共三个分区,则每个分区内都会加上1 然后所有的分区间再加上1 。因此,总共加上4

        rdd1 = sc.parallelize([1,2,3,4,5,6],3)

        rdd2 = rdd1.fold(1,add)

        print('no fold:',rdd1.reduce(add)) # 21

        print('fold:',rdd2) #  25

10、reduce:

        执行算子,搭配 operator 使用

         rdd4 = sc.parallelize([1,2,3,4,5,6])

         print(rdd4.reduce(add)) #21

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yangjiwei0207

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值