reduce(func)
-
说明
通过func函数聚合RDD中所有元素,先聚合分区内元素,再聚合分区间元素
-
示例
val rdd = sc.parallelize(1 to 10, 2) val reduceRdd = rdd.reduce(_ + _) reduceRdd.collect.foreach(println)
-
结果
55
collect
-
说明
将RDD中全部数据以数据形式返回
-
示例
val rdd = sc.parallelize(1 to 10) println(rdd.collect)
-
结果
Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
count
-
说明
返回RDD中元素个数
-
示例
val rdd = sc.parallelize(1 to 10) println(rdd.count)
-
结果
10
first
-
说明
返回RDD中第一个元素
-
示例
val rdd = sc.parallelize(1 to 10) println(rdd.first)
-
结果
1
take(n)
-
说明
返回RDD中前n和元素
-
示例
val rdd = sc.parallelize(1 to 10) println(rdd.take(3))
-
结果
Array(1, 2, 3)
takeOrdered(n)
-
说明
返回RDD排序后的前n个元素
-
示例
val rdd = sc.parallelize(Array(2, 3, 4, 6, 1)) println(rdd.takeOrdered(3))
-
结果
Array(1, 2, 3)
aggregate(zero)(seqOp, combOp)
-
说明
通过seqOp将分区内元素与初始值zero进行聚合,然后通过combOp将分区聚合结果与初始值zero进行聚合
-
示例
val rdd = sc.parallelize(1 to 10, 2) val aggregateRdd = rdd.aggregate(0)(_ + _, _ + _) aggregateRdd.collect.foreach(println)
-
结果
55
fold(zero)(func)
-
说明
与aggregate功能相似,seqOp与combOp为同一函数
-
示例
val rdd = sc.parallelize(1 to 10, 2) val foldRdd = rdd.fold(0)(_ + _, _ + _) foldRdd.collect.foreach(println)
-
结果
55
saveAsTextFile(path)&saveAsSequenceFile(path)&saveAsObjectFile(path)
-
说明
将RDD保存为文本文件、序列文件或对象文件至指定路径
-
示例
val rdd = sc.parallelize(1 to 10, 2) rdd.saveAsTextFile("./files") rdd.saveAsSequenceFile("./files") rdd.saveAsObjectFile("./files")
-
结果
countByKey
-
说明
统计每个key的元素个数
-
示例
val rdd = sc.parallelize(Array(("a", 3), ("a", 2), ("c", 4), ("b", 3), ("c", 6), ("c", 8))) val countRdd = rdd.countByKey() countRdd.collect.foreach(println)
-
结果
("a", 2)
("b", 1)
("c", 3)
foreach(func)
-
说明
遍历数据集,对每个元素执行指定函数
-
示例
val rdd = sc.parallelize(1 to 5) rdd.foreach(println)
-
结果
1
2
3
4
5
网友评论