我试图将多个零件文件作为路径。
out
|
|__ part-r-00000
|__ part-r-00001
|
|__ ...
|
|__ ...
如何给它作为路径?
Path getall = new Path(____);
请建议
更新
正如Alexey Shestakov所建议的那样
Path more = new Path("out");
String line2 = null;
Path pathPattern = new Path(more, "part-r-*");
FileStatus [] list = fs.globStatus(pathPattern);
for (FileStatus status : list) {
BufferedReader bf21 = new BufferedReader(new InputStreamReader(fs.open(pathPattern)));
while ((line2 = bf21.readLine()) != null) {
System.out.println("Line "+line2);
}
}
但是显示
java.lang.Exception: java.io.FileNotFoundException: File out/part-r-* does not exist.
at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:354)
Caused by: java.io.FileNotFoundException: File out/part-r-* does not exist.
我有一个名为
out
的文件夹,其中包含part-r-00000 and part-r-00001
当我给 Path pathPattern = new Path("out/part-r-0000");
我仍然无法读取特定文件夹中的所有零件文件。
最佳答案
new Path("/out/part-r-*")
或new Path("/out/part-r-?????")
。要获取所有满足给定名称的路径,可以使用globStatus方法。 new Path("/out")
用作输入路径。 关于hadoop - 如何将多个零件文件放入路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23989414/