1
私は約9,000のパーティションを持つテーブルを持っています。そのうちの約1200個(3日間を表す)を削除したいと考えています
hadoop fs -rm
とこれらの3日間の正規表現を結合したいと思います。 pr_load_time=2017070([1-4])(\d+)
のようなものです。正規表現を使用したHadoop fs -rm
パーティションは、この(私はここでは最初の2つだけにマッチしたい)
pr_load_time=20170701000317
pr_load_time=20170704133602
pr_load_time=20170705000317
pr_load_time=20170706133602
のように見えるが、この可能性のようなものですか?私はパーティションをawkとマッチングさせることを考えていましたが、xargsを使用していましたが、このような膨大な数のファイルを削除するのは本当に遅いアプローチです。私はコメントの上に推測
もしあなたがn 'hadoop fs -rm"/path/pr_load_time = 20170701 * "'、... '" ... 0702 * "' ...など、それ以外の場合はワイルドカードの削除を1回だけ実行してください。 xargsやそれに類するコマンドを使って個別に削除してください。 – Jedi
@Jediはい、一度やります。だから、7月4日にすべてを削除したいのであれば、私は20170704 *で始まり、その "04"の後にワイルドカードがすべてを気にしますか? –
はい。あなたは 'rm'の代わりに' ls'を使って乾いた走りをすることができます。あなたは[二重引用符を必要とする](https://stackoverflow.com/a/32738462)。 – Jedi