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

你可能感兴趣的:(大数据)