我正在尝试将多个部分文件作为路径。
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");
我仍然无法读取特定文件夹中的所有部分文件。
答案 0 :(得分:0)
如果你想这样做,你必须为2个文件创建2个不同的路径:
Path p0 = new Path("/out/part-r-00000");
Path p1 = new Path("/out/part-r-00001");
所以你可以这样做:
Path p2 = new Path(p0,p1);
我猜你想做什么?
答案 1 :(得分:0)
new Path("/out/part-r-*")
或new Path("/out/part-r-?????")
。要获取满足给定名称的所有路径,可以使用方法globStatus。new Path("/out")
作为输入路径。