我正在从位于HDFS的文件中读取userId。我正在通过缓冲阅读器逐行读取文件,并将currentsystemdate附加到userId并将其存储在文件结束后的数组列表中,我正在将数组列表写入同一文件。但我不想添加到数组列表中我想读取该行附加currentsystemdate并写入同一个文件是否可能
HDFS主要是关于"一次写入,多次读取"。如果你试图更新值,更好的选择将是HBase。在mapreduce作业中,您可以通过TableInputFormat和TableOutputFormat使用。
我正在读取位于hdfs中的文件test.txt,并将"Kishore"附加到该文件的每一行。根据问题改变逻辑
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class Append {
public static void main(String[] args) throws IOException {
Configuration conf = new Configuration();
conf.addResource(new Path(
"/home/kishore/BigData/hadoop/etc/hadoop/core-site.xml"));
String line = "Kishore";
Path path = new Path("hdfs://localhost:9000/test.txt");
FileSystem fs = FileSystem.get(conf);
BufferedWriter br = new BufferedWriter(new OutputStreamWriter(
fs.append(path)));
for(int i=0; i< 1000;i++){
br.write(i+"n");
}
br.close();
}
}