带有正则表达式的{Hadoop fs -rm

时间:2017-08-06 19:53:31

标签: regex hadoop hdfs rm

我有一个9k分区的表,其中我想删除约1200(代表3天)
我想在这3天内合并hadoop fs -rm和正则表达式,例如pr_load_time=2017070([1-4])(\d+)

分区看起来像这样(我想在这里只匹配前两个)

pr_load_time=20170701000317
pr_load_time=20170704133602
pr_load_time=20170705000317
pr_load_time=20170706133602

这样的事情可能吗?我正在考虑使用awk匹配分区并使用xargs,但这似乎是删除如此大量文件的非常慢的方法。

1 个答案:

答案 0 :(得分:0)

我猜以上评论可以解决您的问题,但您可以尝试以下情况

/hdfs path/pr_load_time={20170701000317,20170704133602,20170705000317,..}

或类似的东西

/hdfs path/pr_load_time=201707{01000317,04133602,05000317,..}

这可以在单个命令中组合不同的模式

/ hdfs path / pr_load_time = 201707 {01 *,04 *,05 *,..}