RDD演算子の分類と解釈

RDD算子

変換演算子

マップ:コレクションの各要素に適用されます

フィルタ:フィルタ(sc.filter(_。contains( "hello"))

flatMap:圧力フラットをマップします

union:unionの後に新しいRDDを返します

減算:2つのRDDで同じ要素を削除するための差を計算する関数で、異なるRDDは残ります

交差点:交差点を見つけた後、新しいRDDを返します

明確:重複排除

pattitionBy:パーティションを書き換えます。シェーファープロセスが存在する可能性があります

val rdd =sc.parallelize(Array((1,"aaa"),(2,"bbb"),(3,"ccc"),(4,"ddd")),4)		//4 表示装到4个分区
rdd.partitionBy(new org.apache.spark.HashPartitioner(2))		//变成两个分区

coalesce(numPartitions):パーティションの数のみを減らすことができ、シャッフルは生成されず、大きなデータセットでフィルタリングした後にパーティションが減ります。

repartition(numPartitions):パーティションの数に応じて、ネットワークを介してすべての番号をランダムに再シャッフルします。これにより、シャッフルが生成されます。

reduceByKey:指定されたreduce関数を使用して、同じキーの値を集計します.reduceタスクの数は2番目のパラメーターで設定できます

groupByKey:reduceByKeyの方が効率的です:reduceByKeyは事前にデータを集約し、シャッフルプロセスを削減します

CombineByKey:同じKに対して、Vを1つのセットに結合します

sortByKey([ascending]、[numTasks]):キーを昇順、昇順、降順で並べ替えます。numTasks、タスクの数

sortBy(func、[ascending]、[numTasks]):funcを使用して最初にデータを処理し、処理されたデータの比較結果に従って並べ替えます

join(otherDataset、[numTasks]):タイプ(K、V)および(K、W)のRDDを呼び出し、同じキーに対応するすべての要素の(K、(V、W))のペアを一緒に返しますRDD

val rdd =sc.parallelize(Array((1,"a"),(2,"b"),(3,"c")))
val rdd1 =sc.parallelize(Array((1,3),(2,3),(3,2),(4,1)))
rdd.join(rdd1).collect
Array[(Int, (String, Int))] = Array((2,(b,3)), (1,(a,3)), (3,(c,2)))

cogroup(otherDataset、[numTasks]):タイプ(K、V)および(K、W)のRDDを呼び出し、タイプ(K、(Iterable、Iterable))のRDDを返します。

golm:各パーティションを配列に形成して、新しいRDDタイプRDD [Array [T]]を形成します。

mapValues:フォーム(K、V)のタイプの場合、Vでのみ動作します

sample(withReplacement、fraction、seed):指定されたランダムシードでフラクションデータをランダムにサンプリングします。withReplacementは、抽出されたデータが置換されるかどうかを示します。trueは置換ありのサンプリング、falseは置換なしのサンプリング、seed乱数ジェネレータシードを指定するために使用されます。たとえば、データの50%がランダムに置き換えられ、RDDから置き換えられ、ランダムシード値は3です(つまり、1 2 3の開始値の1つを使用できます)

アクションオペレーター

reduce(func)は、func関数を介してRDD内のすべての要素を収集します。この関数は、交換可能で並列でなければなりません。

val rdd = sc.makeRDD(1 to 10)
rdd.reduce(_+_)

count:RDD内の要素の数を返します

first:RDDの最初の要素を返します

take(n):RDDの最初のいくつかの要素を返します

takeSample(withReplacement、num、[seed]):データセットからランダムにサンプリングされたnum個の要素で構成される配列を返します。不十分な部分を乱数に置き換えるかどうかを選択できます。シードは、乱数ジェネレータシードを指定するために使用されます。

takeOrdered(n):最初のいくつか(最小)の順序を返します

top(n):トップランキング(最大)を返します

saveAsTextFile(path):テキストファイルとして保存

saveAsSequenceFile(path):バイナリファイルとして保存

saveAsObjectFile(path):RDDの要素をオブジェクトにシリアル化し、ファイルに保存するために使用されます

countByKey:各キーの数を数えます

oreach(func):データセットの各要素で、関数funcを実行して更新します(マップと同様)

おすすめ

転載: blog.csdn.net/weixin_44429965/article/details/107365483