3

Hadoop で多くのファイルを処理したいと考えています。各ファイルにはいくつかのヘッダー情報があり、その後に多数のレコードが続き、それぞれが一定のバイト数で格納されています。それに関する提案はありますか?

4

3 に答える 3

1

1つの解決策があります。マッパーが読み取るファイルの行のオフセットを確認できます。ファイルの最初の行はゼロになります。したがって、次のようにマップに行を追加できます。

public void map(LongWritable key、Text value、Context context)はIOException、InterruptedException{をスローします

        if(key.get() > 0)
                       {
                         your mapper code
                       }
              }

したがって、ファイルの最初の行をスキップします。

ただし、この方法ではファイルの各行についてこの条件がチェックされるため、これは適切な方法ではありません。

最善の方法は、カスタム入力形式を使用することです

于 2013-03-21T12:11:14.343 に答える
0

カスタム FileInputFormat を記述することに加えて、ファイルが分割可能でないことを確認して、リーダーがファイル内のレコードを処理する方法を認識できるようにする必要もあります。

于 2009-09-20T17:04:42.163 に答える