2013年02月16日

FileSystemのrename

HadoopでHDFS上のファイルを移動したい場合、 Fileクラスのrenameを使う方法がある。 インタフェースはこうなっている。 public boolean rename(Path src, Path dst); ここで指定するパスにワイルドカードは使えないようだ。
rename(new Path("/src/*.txt"), new Path("/dest/");
/srcの拡張子txtのファイルを/destにリネームしそうな雰囲気はあるが、何も起こらない。 戻り値booleanもTrueなので、失敗したわけではなく、単に該当無しという感じだ。 てっとり早く動かすにはワイルドカードを使わないことだ。 /src配下の該当ファイル一覧をとってきて、各ファイルについてリネームすれば動く。 ファイル一覧は、listStatusのフィルターを拡張して正規表現や後方一致で絞り込めばいい。 hdfs -mvならワイルドカードを使えるんだが。 そう簡単にはいかないらしい。
posted by Thoughter at 12:15| Comment(0) | TrackBack(0) | Hadoop | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は90日以上新しい記事の投稿がないブログに表示されております。