第1个回答 2022-12-11
在 Java API 中,可以使用 FileSystem.listFiles() 方法来获取 HDFS 上文件的列表。该方法接受一个路径作为参数,并返回一个包含文件信息的迭代器。您可以使用该迭代器来遍历 HDFS 上的文件,并获取每个文件的名称,大小等信息。例如,以下代码展示了如何使用 FileSystem.listFiles() 方法来获取 HDFS 上的文件列表:
Path path = new Path("/path/to/directory");
FileSystem fs = FileSystem.get(new Configuration());
RemoteIterator<LocatedFileStatus> fileStatusIterator = fs.listFiles(path, true);
while (fileStatusIterator.hasNext()) {
LocatedFileStatus fileStatus = fileStatusIterator.next();
String fileName = fileStatus.getPath().getName();
long fileSize = fileStatus.getLen();
// do something with the file name and size
}
在上面的代码中,我们首先使用 Path 类来指定要获取文件列表的目录路径。然后,我们使用 FileSystem 类来获取 HDFS 文件系统的实例。接下来,我们调用 FileSystem.listFiles() 方法来获取该目录中的文件列表。最后,我们使用 RemoteIterator 来遍历文件列表,并获取每个文件的名称和大小。