创建RDD,指定分区数(3,此处有坑),如果不指定,默认会根据core,最低默认似乎为2.
保存结果时生成3(分区数)份结果文件,类似hadoop part-00000的文件
scala> val a = sc.parallelize(List(9,1,2,4,6,5),3)
a: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[17] at parallelize at <console>:24
查看分区数,对应上述的指定分区数
scala> a.partitions.length
res25: Int = 3
collect :将RDD类型的数据转化为数组,是Action操作里边的一个算子
scala> a.collect
res26: Array[Int] = Array(9, 1, 2, 4, 6, 5)
reduce : 将RDD中元素两两传递给输入函数,同时产生一个新值,新值与RDD中下一个元素再被传递给输入函数直至只有一个值为止。注意:此方法返回的已经不是RDD类型
scala> a.reduce(_+_)
res27: Int = 27
count : 计算RDD元素的数量大小
scala> a.count
res28: Long = 6
top : 将RDD元素进行排序(降序),取其中的前2(n)个元素
scala> a.top(2)
res29: Array[Int] = Array(9, 6)
take : 取RDD元素的前2(n)个
scala> a.take(2)
res30: Array[Int] = Array(9, 1)
first : 取RDD元素的第一个
scala> a.first
res31: Int = 9
takeOrdered :将RDD元素进行排序(升序asc),而后取前2(n)个元素
scala> a.takeOrdered(2)
res32: Array[Int] = Array(1, 2)