对RDD进行聚合操作
>>> rdd = sc.parallelize([1, 2, 3, 4, 5])
>>> rdd.reduce(lambda x,y:x+y)
15
获取RDD的数据
>>> rdd = sc.parallelize([1, 2, 3, 4, 5])
>>> rdd.collect()
[1, 2, 3, 4, 5]
获取RDD的数据个数
>>> rdd = sc.parallelize([1, 2, 3, 4, 5])
>>> rdd.count()
5
获取RDD的第一个元素
>>> rdd = sc.parallelize([1, 2, 3, 4, 5])
>>> rdd.first()
1
获取RDD的前n个元素
>>> rdd = sc.parallelize([1, 2, 3, 4, 5])
>>> rdd.take(3)
[1, 2, 3]
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]
返回RDD中最小的k个元素
>>> rdd = sc.parallelize([1, 2, 3, 4, 5])
>>> rdd.takeOrdered(3)
[1, 2, 3]
saveAsTextFile会按照执行task的多少生成多少个文件,比如part-00000一直到part-0000n,n自然就是task的个数,亦即是最后的stage的分区数
>>> rdd = sc.parallelize([1, 2, 3, 4, 5])
>>> rdd.saveAsTextFile("/home/taoke/a.txt")
(Java and Scala)
(Java and Scala)
统计key的出现次数
>>> rdd = sc.parallelize([("a", 1), ("b", 1), ("a", 1)])
>>> sorted(rdd.countByKey().items())
[('a', 2), ('b', 1)]
迭代每个rdd内的数据,并执行func函数
>>> rdd = sc.parallelize([1, 2, 3, 4, 5])
>>> rdd.foreach(f)
1
2
3
4
5