我无法将数据附加到HDFS中的现有文件中.我希望如果文件存在然后附加一行,如果没有,创建一个名称给定的新文件.
这是我写入HDFS的方法.
if (!file.exists(path)){
file.createNewFile(path);
}
FSDataOutputStream fileOutputStream = file.append(path);
BufferedWriter br = new BufferedWriter(new OutputStreamWriter(fileOutputStream));
br.append("Content: " + content + "\n");
br.close();
Run Code Online (Sandbox Code Playgroud)
实际上这个方法写入HDFS并创建一个文件,但正如我所提到的那样没有追加.
这是我测试我的方法的方法:
RunTimeCalculationHdfsWrite.hdfsWriteFile("RunTimeParserLoaderMapperTest2", "Error message test 2.2", context, null);
Run Code Online (Sandbox Code Playgroud)
第一个参数是文件的名称,第二个参数是消息,另外两个参数不重要.
所以任何人都知道我错过了什么或做错了什么?
我2 GB在我的数据中有数据HDFS.
是否可以随机获取数据.就像我们在Unix命令行中所做的那样
cat iris2.csv |head -n 50
Run Code Online (Sandbox Code Playgroud)