私はHDFSからデータを読んでいます。私は各ユーザーの複数の行を持って、私はすべてのユーザーの最新の行を選択する必要があります。Apache Spark RDD:ペアドRDDキーと値に基づいて最新のデータを取得する方法
行の例(RDD [Id: Int, DateTime: String, Name: STRING]
)
1,2016-05-01 01:01:01,testa
2,2016-05-02 01:01:01,testb
1,2016-05-05 01:01:01,testa
上記の例であり、ID = 1 2つの行があり、私はすべてのIDが一度だけ必要(だけ最新のものと、それは、対応するデータ'S)iは以下のように出力RDDを望ん。
2,2016-05-02 01:01:01,testb
1,2016-05-05 01:01:01,testa
私の考え
私はすべてのユーザーに対して最新のデータを維持することによって、配列にこのデータを収集し、望ましい結果を得るために、forループを実行することができます。
私は収集データをマスターノードに与えます。私のデータは30 GBで、MasterのRAMは25 GBです。だから私はこれを試してみません。
あなたはこのタスクを達成するためのアイデアとコードを共有できますか?
アレイを使用する場合は、なぜSparkで気になるのですか? –
okこれはアプローチになるはずです。私はapacheのスパークに新しいです –
そして、 '2016-05-01 01:01:01'は'ロング 'のように見えますか? –