我正在尝试使用下面的代码从spark中删除hive stage文件。此代码可以删除目录中的文件,但我要删除以“.hive-staging\u hive”开头的所有文件。
我能知道如何删除以特定文本开头的目录吗。
Configuration conf = new Configuration();
System.out.println("560");
Path output = new Path("hdfs://abcd/apps/hive/warehouse/mytest.db/cdri/.hive-staging_hive_2017-06-08_20-45-20_776_7391890064363958834-1/");
FileSystem hdfs = FileSystem.get(conf);
System.out.println("564");
// delete existing directory
if (hdfs.exists(output)) {
System.out.println("568");
hdfs.delete(output, true);
System.out.println("570");
}
1条答案
按热度按时间6l7fqoea1#
最简单的方法是从java程序运行一个进程,并使用通配符删除目录中以“.hive-staging\u hive”开头的所有文件。
下一种方法是列出目录中的所有文件。筛选以“.hive-staging\u hive”开头的文件并将其删除。
希望这有帮助!