Spark学習のキー値対(pair RDD)操作(3)

2210 ワード

Spark学習のキー値対(pair RDD)操作(3)
1.通常、イベント時間、ユーザID、または他の識別子を表すフィールドなどのいくつかのフィールドをRDDから抽出し、pair RDDオペレーションのキーとして使用します.
2.pair RDDの作成
1)            
2)     RDD  map()  pair RDD,            。
Python                pair RDD
    pairs = lines.amp(lambda x: (x.split(" ")[0],x))
Scala                pair RDD
    val pairs = lines.map(x=>(x.split(" ")(0),x))

3.pair RDDの変換動作
pair RDD        RDD         ,      

reduceBykey(func)                

groupByke()                         

combineByKey(                              
createCombiner,
mergeValue,
mergCombiners,
partitioner)

mapValues(func)          pair RDD                

flatMapValues(func)      pair RDD                 ,
                                                 。
                               。

keys()                           RDD

values()                         RDD

sortByKey()                       RDD

4.2つのpair RDD変換動作について
subtractByKey             RDD   other RDD        
join                       RDD     
rightOuterJoin             RDD      ,     RDD      (    )
leftOuterJoin              RDD      ,     RDD      (    )
cogroup                    RDD              

5.pair RDDのアクション
countByKey()                         
collectAsMap()                      ,    
lookup(key)                        

6.データパーティション
                           。
                        ,      。

Scala       
    val sc = new SparkContext(...)
    val userData = sc.sequenceFile(UserID,UserInfo)("hdfs://...")
                     .partitionBy(new HashPartitioner(100))
                     .persist()