【发布时间】:2019-11-15 13:07:28
【问题描述】:
我犯了一个错误,将几百个零件文件添加到按日期分区的表中。我能够看到哪些文件是新的(这些是我要删除的文件)。我在这里看到的大多数情况都与删除某个日期之前的文件有关,但我只想删除我最近的文件。
一天,我可能有 3 个这样的文件,我只想删除新文件。我可以说它是新的,因为我使用 hadoop fs -ls 时的更新时间戳
/this/is/my_directory/event_date1_newfile_20191114
/this/is/my_directory/event_date1_oldfile_20190801
/this/is/my_directory/event_date1_oldfile_20190801
我有很多日期,所以我必须为 event_date2、event_date3 等完成这个,总是从每个日期中删除“new_file_20191114”。
较早的日期是 2019 年 8 月,我的新文件昨天更新了,19 年 11 月 14 日。
我觉得应该有一个简单/快速的解决方案来解决这个问题,但我很难从大多数人询问的情况中找到相反的情况。
【问题讨论】:
-
我可能是错的,但恐怕我不认为有一个单一的衬里。不过应该只有几行 Bash。
-
您所有的新文件是否都具有相同的时间戳?或新文件的时间戳大于某个指定时间?
-
@Strick 是的,完全正确 - 我已经能够使用:
hdfs dfs -ls /tmp | sort -k6,7从这篇文章中取得一些进展:stackoverflow.com/questions/37022749/… 所以我现在有了我需要删除的特定文件的列表,并且我现在正试图找到一种方法来批量删除预先创建的文件列表 -
我会发布答案
-
我已经发布并回答请检查它是否解决了您的目的
标签: hadoop hive hdfs hql hadoop-partitioning