Spark RDD操作API -- Actions

reduce(func)

对RDD进行聚合操作

>>> rdd = sc.parallelize([1, 2, 3, 4, 5])
>>> rdd.reduce(lambda x,y:x+y)
15

collect()

获取RDD的数据

>>> rdd = sc.parallelize([1, 2, 3, 4, 5])
>>> rdd.collect()
[1, 2, 3, 4, 5]

count()

获取RDD的数据个数

>>> rdd = sc.parallelize([1, 2, 3, 4, 5])
>>> rdd.count()
5

first()

获取RDD的第一个元素

>>> rdd = sc.parallelize([1, 2, 3, 4, 5])
>>> rdd.first()
1

take(n)

获取RDD的前n个元素

>>> rdd = sc.parallelize([1, 2, 3, 4, 5])
>>> rdd.take(3)
[1, 2, 3]

takeSample(withReplacement, num, [seed])

withReplacement:是否重复取样
num:取样数
seed:随机种子

>>> rdd = sc.parallelize([1, 2, 3, 4, 5])
>>> rdd.takeSample(True,4,12)
[5, 5, 5, 1]
>>> rdd.takeSample(False,4,12)
[1, 2, 5, 3]

takeOrdered(n, [ordering])

返回RDD中最小的k个元素

>>> rdd = sc.parallelize([1, 2, 3, 4, 5])
>>> rdd.takeOrdered(3)
[1, 2, 3]

saveAsTextFile(path)

saveAsTextFile会按照执行task的多少生成多少个文件,比如part-00000一直到part-0000n,n自然就是task的个数,亦即是最后的stage的分区数

>>> rdd = sc.parallelize([1, 2, 3, 4, 5])
>>> rdd.saveAsTextFile("/home/taoke/a.txt")

saveAsSequenceFile(path)

(Java and Scala)

saveAsObjectFile(path)

(Java and Scala)

countByKey()

统计key的出现次数

>>> rdd = sc.parallelize([("a", 1), ("b", 1), ("a", 1)])
>>> sorted(rdd.countByKey().items())
[('a', 2), ('b', 1)]

foreach(func)

迭代每个rdd内的数据,并执行func函数

>>> rdd = sc.parallelize([1, 2, 3, 4, 5])
>>> rdd.foreach(f)
1
2
3
4
5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值