我试图用java列出hdfs中的所有目录和文件。
Configuration configuration = new Configuration();
FileSystem fs = FileSystem.get(new URI("hdfs://ip address"), configuration);
FileStatus[] fileStatus = fs.listStatus(new Path("hdfs://ip address/user/uname/"));
Path[] paths = FileUtil.stat2Paths(fileStatus);
for(FileStatus status : fileStatus){
System.out.println(status.getPath().toString());
}
我的代码能够生成fs对象,但在第3行卡住了,这里它试图读取文件夹和文件的文件。我在用aws。
请帮我解决这个问题。
2条答案
按热度按时间fcwjkofz1#
检查以下使用递归或非递归方法获取文件列表的方法。要获取目录列表,可以更改代码,使其将目录路径添加到结果列表中,而不是文件中。请检查
fs.isDirectory()
代码中用于提取目录路径的if else子句。FileStatus
班级也有isDirectory(
)方法检查FileStatus
示例引用目录。azpvetkf2#
这对我有用。。
输出
它认为你给出的uri不正确。试着按照守则去做。
如果未设置conf,则必须添加资源文件