gpt4 book ai didi

hadoop - 如何使用SequenceFileInputFormat将字节数组序列化为本地文件

转载 作者:行者123 更新时间:2023-12-02 21:51:15 25 4
gpt4 key购买 nike

我想这样做:protobuf->字节数组-> | HTTP post | ->字节数组->序列化为本地文件-> Hadoop中的MapReduce。

  • 我想做的第一种方法是使用BufferedWriter / FileWriter将字节数组作为String写入带有'\ n'或另一个定界符的本地文件中。这种方式的问题是写入的字节数组可能包含'\ n'或其他定界符。
  • 字节数组-> protobuf-> json,然后将json序列化为文件。它将遇到与上述相同的问题。
  • Hadoop中有一个名为SequenceFileInputFormat的InputFormat,它似乎在Hadoop的MapReduce中使用。我的问题是如何在本地将字节数组序列化为该格式的文件?

  • 或任何其他方式可以解决我的问题?谢谢。

    最佳答案

    好的,问题现在已经解决。

    org.apache.hadoop.io.SequenceFile.Writer为我工作。

    Configuration conf = new Configuration();
    LocalFileSystem fs = FileSystem.getLocal(conf);
    SequenceFile.Writer writer = SequenceFile.createWriter(fs, conf, new Path("~/test"), LongWritable.class, BytesWritable.class);
    LongWritable key = new LongWritable(1L);
    BytesWritable val = new BytesWritable(protobufObject.toByteArray());
    writer.append(key, val);
    writer.close();

    关于hadoop - 如何使用SequenceFileInputFormat将字节数组序列化为本地文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20703541/

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