如何更新或写入 Hadoop 上的文件系统?

c0m*_*ade 1 java hadoop overwrite

所以我正在使用 Hadoop 上的文件系统,我需要使用路径对该文件系统进行一些更新。在这个文件系统中,我有不同的txt格式文件。我可以通过使用路径来访问这些文件。下面我认为我可以使用 BufferedReader 读取 Hadoop 上的文本文件,但尚未经过测试。

fs = FileSystem.get(URI.create(path), conf);
Path pt = new Path(out + "/" + name  + ".txt");
BufferedReader each_br = new BufferedReader(new InputStreamReader(fs.open(pt)));
Run Code Online (Sandbox Code Playgroud)

我想使用路径写入特定文件。我想不通。任何想法如何?

谢谢,

gre*_*dha 5

你已经读完了,写作也同样简单。

fs = FileSystem.get(URI.create(path), conf);
FSDataOutputStream out = fs.create(new Path("myOutFile"));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out));
Run Code Online (Sandbox Code Playgroud)

这将为您提供标准的 java BufferedWriter。从那以后,您应该能够做任何您想做的事情。

  • +1,请记住,如果文件已经存在,`create(Path)` 将抛出异常 - 如果你想覆盖文件,请改用 `create(Path, true)` 方法调用 (5认同)