0
タプルをキーとして使用してRDDの最大値を見つける必要がありました。 元RDDを次のように定義される。このよう testRDD:私はタプル(1,3)に基づいて、第2のカラムの最大値を見つけるために必要なRDD他のRDDにフィルタとしてセットを使用する方法
TestRDD(3,249345,038.9,1)
TestRDD(3,249345,785.59,2)
TestRDD(3,249345,584.9,3)
TestRDD(3,249345,427.5,4)
TestRDD(3,249345,410.71,5)
Iは、以下の操作を行って、それをacheiveすることができました:
val agg_rdd = TestRDD.map(d => ((d.col1,d.col3),(d.col2))).groupByKey()
val max_AggRDD = agg_rdd.map{case ((col1,col3),(col2)) => (col1,col3) -> col2.max}
val ids_maxAggRDD = max_AggRDD.collect.toSet
は、今は元のtestRDDにフィルタとしてscala.collection.immutable.Set [((文字列、文字列)、ロング)]として定義されるID ids_maxAggRDDの出力を使用する必要があります。
私はこれを行うために値を使用することができないようです。
val Max_RDD = TestRDD.filter(v => ids_maxAggRDD.value.contains(v.col1,v.col3,v.col2)))
- 私が何か
- に最大IDのセットを変換する必要があり、私が達成したいものを達成するためのより良い方法はありますか?
あなたはScala 'Set'に' .value'を持っていません。あなたは 'ids_maxAggRDD.value'の結果として何を得たいですか?そして、あなたは 'Max_RDD'を計算するためにどの論理を使用したいですか? – semsorock