2016年09月01日

JavaでHadoopのrmdirしたかった

fs.rmdir(path) みたいなことができるかと思ったのだけど、API見てみるとおらぬ。

https://hadoop.apache.org/docs/r2.6.1/api/org/apache/hadoop/fs/FileSystem.html

じゃ、hadoop fs -rmdir path とやっているアレは何者かと見てみると、重要なところとしては下記のような記述になっていた。

if (item.fs.listStatus(item.path).length == 0) {
    if (!item.fs.delete(item.path, false)) {
        throw new PathIOException(item.toString());
    }
}

// https://github.com/gnudeep/hadoop-2.6/blob/master/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/shell/Delete.java

listStatusして0だったら消しに行く感じらしい。まあ、これでいいか。