1

可変行数を含むレコードを含む、処理する必要があるファイルがあります。

たとえば、次のファイルがあります:-

100,abc,123
101,abc,123
120,abc,123

100,abc,123
111,abc,123
123,abc,123
120,abc,123
100,abc,123
111,abc,123
120,abc,123

100,abc,123
114,abc,123
120,abc,123

上記の太字と非太字は、各レコードを示しています。 したがって、上記からわかるように、各レコードは 100 で始まり 120 で終わります。ただし、各レコードには、3 または 4 などの可変数の行が含まれています。これで、カスタム入力形式とカスタム レコード リーダーを使用してこれを解決できることがわかりました。ここで、linerecordreader を再利用して可変行を処理できます。しかし、そのアプローチの問題は、レコード (100 行で始まり 120 行で終わる) 自体が大きすぎて単一のレコードとしてマップに含めることができない場合です。そのような場合、これは失敗します。したがって、デフォルトのinputformatとrecordreaderを使用し、mapperまたはreducerなどで何かを行うことでこれを解決できる、より良い解決策が必要です。問題が何らかの方法で解決できる場合は、複数の仕事も歓迎します。

4

0 に答える 0