2016-05-23 4 views
-2

今、私は次のようにRDDのレコードがあるRDDを、持っている:キーでスパークrddを区別する方法は?

key1 value1 
key1 value2 
key2 value3 
key3 value4 
key3 value5 

次のように私は、別のキーを持つRDDレコードを取得したい:

key1 value1 
key2 value3 
key3 value4 

私がすることができますスパークコアAPIを使用し、同じキーの値を集計しないでください。データフレームに

答えて

2

あなたはPairRDDFunctions.reduceByKeyでこれを行うことができます。あなたはRDD[(K, V)]を持っていると仮定します:

rdd.reduceByKey((a, b) => if (someCondition) a else b) 
+0

ありがとう、それは動作します。 –

1

collect_set

sqlContext.createDataFrame(rdd).toDF("k", "v") 
    .groupBy("k") 
    .agg(collect_set(col("v"))) 
+0

ありがとう、しかしここで私はsqlContextを使用できません。私はspark-coreでAPIを使うことができます。 –

+0

@CaizhengLiuこの場合、あなたの質問を編集し、制限や詳細を追加して答えることをお勧めします。 – Wtower

+0

@Wower、ありがとう、私はここで新しいです。 –

関連する問題