Java 在安装方法中,是否有任何方法可以获取与当前文件(在hdfs中)位于同一文件夹中的文件列表?

Java 在安装方法中,是否有任何方法可以获取与当前文件(在hdfs中)位于同一文件夹中的文件列表?,java,hadoop,mapreduce,Java,Hadoop,Mapreduce,我的java hadoop作业获取一些路径作为输入。我覆盖mapper类中的设置方法,并获取当前文件的路径: ((FileSplit) context.getInputSplit()).getPath().toString(); 在安装方法中,是否有任何方法可以获取hdfs中当前文件所在文件夹中的文件列表 更准确地说,我需要处理以下情况:文件夹包含一组文件,并且每个文件都以其名称包含一些代码,例如: fileName_somecode1.txt fileName_somecode2.txt .

我的java hadoop作业获取一些路径作为输入。我覆盖mapper类中的设置方法,并获取当前文件的路径:

((FileSplit) context.getInputSplit()).getPath().toString();
在安装方法中,是否有任何方法可以获取hdfs中当前文件所在文件夹中的文件列表

更准确地说,我需要处理以下情况:文件夹包含一组文件,并且每个文件都以其名称包含一些代码,例如:

fileName_somecode1.txt fileName_somecode2.txt ... fileName_somecoden.txt
在映射程序开始工作之前,我需要读取文件夹中的所有文件,收集所有代码,然后决定是否需要处理当前文件

让我们看一个简单的例子:

test_1.txt test_2.txt test_3.txt
如果存在比当前代码更多或更少的代码,我需要跳过所有文件,因此在这个玩具示例中,应该跳过test_2.txt,因为有1个和3个代码。

您可以尝试以下方法:

Path file = ((FileSplit) context.getInputSplit()).getPath();
Path folder = file.getParent();
Configuration conf = context.getConfiguration();
FileSystem fs = FileSystem.get(folder.toUri(), conf);
FileStatus[] statuses = fs.listStatus(folder); // get list of files in folder
for (FileStatus status : statuses) {
    Path f = status.getPath();
    // process file f
}