gpt4 book ai didi

hadoop - 未写入 HDFS 文件的值

转载 作者:可可西里 更新时间:2023-11-01 16:34:25 26 4
gpt4 key购买 nike

我正在尝试将值写入 HDFS 上的文件。这是代码:

FileSystem fsys = FileSystem.get(new Configuration());
String fileName = "/user/root/TestData/Parameter.txt";
Path path = new Path(fileName);//(pathOfTestFile);
//fstatus.getPath();
FSDataOutputStream fos = null;
try {
fos = fsys.create(path);
} catch (IOException e1) {
e1.printStackTrace();
}
BufferedWriter writer = new BufferedWriter(new
OutputStreamWriter(fos));
writer.write(iterations);
writer.close();
fos.close();

但是,我看到命令 hadoop fs -ls 显示大小为 4 ,但是当我执行 hadoop fs -cat 时,文件没有显示任何内容。

最佳答案

我假设迭代是一个整数/短/字节。无论哪种方式,这些值的字节表示都是零个或多个 0x00 字节,后跟一个 0x04 字节。 0x00 和 0x04 都不是可打印字符,因此 hadoop fs -cat shows 输出中没有任何内容也就不足为奇了。

不过,如果您将输出通过管道传输到 hexdump -C,我想您会看到您的输出:

hadoop fs -cat /path/to/file | hexdump -C

编辑

您还使用了 BufferedWriter.write(int)它实际上将 int 作为字符写出。你应该使用 FSDataOutputStream.writeInt(iterations) (其实是DataOutputStream的一个方法)然后FSDataInputStream.readInt()再次阅读。

关于hadoop - 未写入 HDFS 文件的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11558623/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com