0

助けてください、私は次のサンプルデータを持っています:

-21.33,45.677,1234,1245,1267,1290,1212,1111,10000,1902
-21.34,45.677,1264,1645,1266,1260,1612,1611,16000,1602
-21.35,45.677,1244,1445,1467,1240,1242,1211,11000,1912
-21.36,45.677,1231,1215,1217,1210,1212,1111,10010,1902

Hadoop mapreduce コードで、最初の 2 つの float エントリをキー (-21.33,45.677) と見なし、残りの整数エントリを値 (1234,1245,1267,1290,1212,1111,10000,1902) と見なす必要があります。

既存の FileInputFormats で実行できるかどうかはわかりません。では、値をテキストではなく配列として使用する必要があることを知って、どうすればよいでしょうか。

また、計算のためにマップで同時に複数のレコードを取得できるように、inputSplit を変更するにはどうすればよいですか。

4

3 に答える 3

1

最も簡単な方法は、TextInputFormat を使用して、マッパーにキーと値を分割させることです。マッパーの出力キーと値は、両方ともテキストになる可能性があります。

于 2012-07-28T14:11:29.270 に答える
0

<LongWritable, Text>TextInputFormat の入力タイプをそのまま使用できず、それに応じて抽出と変換を実行できない理由はありますか?

それが本当に受け入れられない場合は、ChainMapperの使用を検討してください。1つのマップを使用して抽出を行い、それらの結果を必要なキー/値を期待する別のマッパーに渡します。

于 2012-07-27T22:04:20.173 に答える