アクションディレクトリ
- 低減(F(T、T)=> T):T
- 収集():配列[T]
- 数():ロング
- 最初の():T
- 配列[T]:(:のInt NUM)を取ります
- takeOrdered(NUM:INT)(暗黙ORD:注文[T])
- 集計[U:ClassTag(zeroValue:U)(seqOp:(U、T)=> U、combOp:(U、U)=> U):U
- (zeroValue:T)を折る(OP:(T、T)=> T):T
- saveAsTextFile(パス:文字列):ユニット
- saveAsObjectFile(パス:文字列):ユニット
- countByKey():地図[K、ロング]
- foreachの(F:T =>ユニット)ユニット
低減(F(T、T)=> T):T
:関数funcによってRDD内のすべての要素を収集
scala> var rdd=sc.parallelize(1 to 10,2).collect
rdd: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
scala> rdd.reduce(_+_)
res1: Int = 55
scala> sc.makeRDD(Array(("A",0),("A",2),("B",1),("B",2),("C",1)))
res3: org.apache.spark.rdd.RDD[(String, Int)] = ParallelCollectionRDD[3] at makeRDD at <console>:25
scala> res3.reduce((x,y)=>(x._1+y._1,x._2+y._2))
res4: (String, Int) = (BBCAA,6)
収集():配列[T]
:ドライバでは、アレイのすべての要素を設定するデータを返します
scala> var rdd=sc.parallelize(1 to 10,2).collect
rdd: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
数():ロング
:RDDの要素数を返します。
scala> var rdd=sc.makeRDD(1 to 10)
rdd: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[5] at makeRDD at <console>:24
scala> rdd.count
res9: Long = 10
最初の():T
:RDD内の最初の要素を返します。
scala> var rdd=sc.makeRDD(1 to 10)
rdd: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[6] at makeRDD at <console>:24
scala> rdd.first
res10: Int = 1
配列[T]:(:のInt NUM)を取ります
:最初のn個の要素RDDを返します。
scala> var rdd=sc.makeRDD(1 to 10)
rdd: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[7] at makeRDD at <console>:24
scala> rdd.take(3)
res11: Array[Int] = Array(1, 2, 3)
takeOrdered(NUM:INT)(暗黙ORD:注文[T])
:最初のいくつか順位を返します。
scala> var rdd=sc.makeRDD(Array(1,3,6,2,4,5))
rdd: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[10] at makeRDD at <console>:24
scala> rdd.takeOrdered(3)
res14: Array[Int] = Array(1, 2, 3)
集計[U:ClassTag(zeroValue:U)(seqOp:(U、T)=> U、combOp:(U、U)=> U):U
:次いで、集計seqOp初期値を重合することにより素子内の各パーティションのための機能、および各パーティション(zeroValue)の初期値の結果とを組み合わせる演算機能と組み合わせます。この機能は必要とされない種類やRDDと一致最終要素のタイプを返します。
scala> var rdd=sc.makeRDD(1 to 10,2)
rdd: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[12] at makeRDD at <console>:24
scala> rdd.aggregate(1)(
| (x:Int,y:Int)=>x+y,
| (a:Int,b:Int)=>a+b
| )
res16: Int = 58
scala> rdd.aggregate(1)(
| (x:Int,y:Int)=>x*y,
| (a:Int,b:Int)=>a*b
| )
res17: Int = 3628800
(zeroValue:T)を折る(OP:(T、T)=> T):T
:SEQOPとcombopとして、骨材の操作を簡単にする操作を、折りたたみ。
scala> var rdd=sc.makeRDD(1 to 10,2)
rdd: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[12] at makeRDD at <console>:24
scala> rdd.aggregate(1)(
| (x:Int,y:Int)=>x+y,
| (a:Int,b:Int)=>a+b
| )
res16: Int = 58
scala> rdd.fold(1)(_+_)
res18: Int = 58
saveAsTextFile(パス:文字列):ユニット
:RDDはテキストファイルとしてローカルまたはHDFSに保存されています
scala> var rdd=sc.makeRDD(1 to 10,2)
rdd: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[12] at makeRDD at <console>:24
scala> rdd.saveAsTextFile("hdfs://hadoop01:9000/rdd")
[root@hadoop01 ~]# hadoop fs -cat /rdd/*
1
2
3
4
5
6
7
8
9
10
saveAsObjectFile(パス:文字列):ユニット
:ローカルに格納された要素にRDDまたはHDFSは、シリアル化されたオブジェクトを形成します。
scala> rdd.saveAsObjectFile("hdfs://hadoop01:9000/rdd")
countByKey():地図[K、ロング]
(K、V)RDD、マップのリターン(K、int)を、タイプのために、各キーに対応する要素の数を表します。
scala> var rdd=sc.makeRDD(List((1,3),(1,2),(1,4),(2,3),(3,6),(3,8)),3)
rdd: org.apache.spark.rdd.RDD[(Int, Int)] = ParallelCollectionRDD[17] at makeRDD at <console>:24
scala> rdd.countByKey()
res22: scala.collection.Map[Int,Long] = Map(3 -> 2, 1 -> 3, 2 -> 1)
foreachの(F:T =>ユニット)ユニット
:データセット、関数func更新操作の各要素に対して。
scala> var rdd=sc.makeRDD(1 to 10 ,2)
rdd: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[20] at makeRDD at <console>:24
scala> rdd.collect().foreach(println)
1
2
3
4
5
6
7
8
9
10