Filtern von input-Dateien mit globStatus in MapReduce

Ich habe eine Menge von input-Dateien und die möchte ich verarbeiten ausgewählte Elemente basierend auf dem Datum, das angefügt wurde, in das Ende. Ich bin jetzt verwirrt, wo muss ich die globStatus Methode zum filtern der Dateien.

Habe ich eine benutzerdefinierte RecordReader Klasse, und ich versuchte zu verwenden globStatus in seiner nächsten Methode, aber es hat nicht funktioniert.

public boolean next(Text key, Text value) throws IOException {
    Path filePath = fileSplit.getPath();

    if (!processed) {
        key.set(filePath.getName());

        byte[] contents = new byte[(int) fileSplit.getLength()];
        value.clear();
        FileSystem fs = filePath.getFileSystem(conf);
        fs.globStatus(new Path("/*" + date));
        FSDataInputStream in = null;

        try {
            in = fs.open(filePath);
            IOUtils.readFully(in, contents, 0, contents.length);
            value.set(contents, 0, contents.length);
        } finally {
            IOUtils.closeStream(in);
        }
        processed = true;
        return true;
    }
    return false;
}

Ich weiß, es gibt eine "FileStatus" array, aber wie kann ich es verwenden, um die Dateien zu filtern. Kann jemand bitte etwas Licht?

InformationsquelleAutor aa8y | 2013-01-15
Schreibe einen Kommentar