我有一个带有9k分区的表,我想删除其中约1200个(代表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,但这似乎是删除这么多文件的非常慢的方法。

最佳答案

我想上面的评论可以解决您的问题,但是您可以在下面尝试以防万一

/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 *,..}

关于regex - 带有正则表达式的Hadoop fs -rm,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45536017/

10-13 03:21