今、私は次のようにRDDのレコードがあるRDDを、持っている:キーでスパークrddを区別する方法は?
key1 value1
key1 value2
key2 value3
key3 value4
key3 value5
次のように私は、別のキーを持つRDDレコードを取得したい:
key1 value1
key2 value3
key3 value4
私がすることができますスパークコアAPIを使用し、同じキーの値を集計しないでください。データフレームに
今、私は次のようにRDDのレコードがあるRDDを、持っている:キーでスパークrddを区別する方法は?
key1 value1
key1 value2
key2 value3
key3 value4
key3 value5
次のように私は、別のキーを持つRDDレコードを取得したい:
key1 value1
key2 value3
key3 value4
私がすることができますスパークコアAPIを使用し、同じキーの値を集計しないでください。データフレームに
あなたはPairRDDFunctions.reduceByKey
でこれを行うことができます。あなたはRDD[(K, V)]
を持っていると仮定します:
rdd.reduceByKey((a, b) => if (someCondition) a else b)
とcollect_set
:
sqlContext.createDataFrame(rdd).toDF("k", "v")
.groupBy("k")
.agg(collect_set(col("v")))
ありがとう、しかしここで私はsqlContextを使用できません。私はspark-coreでAPIを使うことができます。 –
@CaizhengLiuこの場合、あなたの質問を編集し、制限や詳細を追加して答えることをお勧めします。 – Wtower
@Wower、ありがとう、私はここで新しいです。 –
ありがとう、それは動作します。 –