1

シーケンスファイルを.txtファイルに変換する方法はありますか?シーケンスファイルは、SequenceFileReaderを使用して読み取ろうとすると、EOFExceptionが発生するHadoopジョブの後に生成されますが、ジョブは正常に完了します。したがって、シーケンスファイルをローカルシステムにコピーして、可能であればtxt形式に変換することもできます。

4

1 に答える 1

1

ファイルを seq から text に変更することは適切な解決策ではありません..問題を調べてみてください..そして、このようなことを試してキーと値のペアを読み取ることができます-

public class SequenceFileReader {
    public static void main(String args[]) throws Exception {
        System.out.println("Readeing Sequence File");
        Configuration conf = new Configuration();
        conf.addResource(new Path("/home/mohammad/hadoop-0.20.203.0/conf/core-site.xml"));
        conf.addResource(new Path("/home/mohammad/hadoop-0.20.203.0/conf/hdfs-site.xml"));  
        FileSystem fs = FileSystem.get(conf);
        Path path = new Path("/seq/file");
        SequenceFile.Reader reader = null;      
        try {
            reader = new SequenceFile.Reader(fs, path, conf);
            Writable key = (Writable) ReflectionUtils.newInstance(reader.getKeyClass(), conf);
            Writable value = (Writable) ReflectionUtils.newInstance(reader.getValueClass(), conf);
            while (reader.next(key, value)) {
                System.out.println(key + "  <===>  " + value.toString());
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            IOUtils.closeStream(reader);
        }
    }
}

「hadoop fs -text seqfile」コマンドを使用して、seq ファイルをテキスト ファイルに変換できますが...

于 2012-05-29T12:29:24.637 に答える