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 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

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