gpt4 book ai didi

java - InputStream到Hadoop SequenceFile

转载 作者:行者123 更新时间:2023-12-02 21:48:42 28 4
gpt4 key购买 nike

我有一个代表序列文件的通用输入流。我想从中创建一个SequenceFile.Reader或类似的类,而无需将输出流写入磁盘上的临时文件。是否有一些事情让我从输入流转到允许我从输入流中读取键/值对的东西。

最佳答案

由于某种原因,当前的SequenceFile.Reader类上似乎没有任何文档,但是仔细查看Hadoop 2.0+的代码,我相信以下方法会起作用:

FSDataInputStream inputStream = new FSDataInputStream (rawInputStream);
Option isOption = SequenceFile.Reader.stream(inputStream);
SequenceFile.Reader reader = new SequenceFile.Reader(hadoopConf,isOption);

您可能还对选项 startlength感兴趣,其中 start是读取序列文件之前要跳过多少字节,而 length是要从流中读取多少字节。设置该阅读器可能如下所示:
FSDataInputStream inputStream = new FSDataInputStream (rawInputStream);
Option isOption = SequenceFile.Reader.stream(inputStream);
Option lengthOption = SequenceFile.Reader.length(100000);
Option startOption = SequenceFile.Reader.start(10);
SequenceFile.Reader reader = new SequenceFile.Reader(hadoopConf,isOption,lengthOption,startOption);

最后,一旦构造了 Reader,就可以像这样通读值:
Text key = new Text();
Text val = new Text();
while (reader.next(key,val)) {
//do stuff
}

同样,我根本没有测试过此代码,但这在理论上应该可行。如果您未使用Hadoop 2.0+,则不确定要告诉您什么。

关于java - InputStream到Hadoop SequenceFile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22919013/

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