java - 自定义二进制文件 - 从 hadoop 读取

标签 java hadoop mapreduce

我有一个固定长度的二进制文件。记录是这样的:

[Field1:int, Field2:double, Field3: int, ....]

如何将此文件作为我的 map reduce 作业的输入? 我需要编写自定义 InputFormat 吗? 有没有人可以发布一个例子?

谢谢

最佳答案

我发现存在一个名为 FixedLengthInputFormat 的类!它运作良好! 我可以将记录的长度传递给它。映射器接收一个 BytesWritable(一种字节数组)作为输入值,我只是将它反序列化为一个对象。

https://hadoop.apache.org/docs/current/api/org/apache/hadoop/mapred/FixedLengthInputFormat.html

关于java - 自定义二进制文件 - 从 hadoop 读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25086462/

相关文章:

hadoop - 如何在不使用getmerge的情况下将头文件作为第一行插入HDFS的数据文件中(复制到本地时性能问题)?

java - 在 onCreateView 方法之外的 Fragment Activity 中使用 Edittext

java - Spring框架映射/处理 "Did not find handler method"

java - robolectric 单元测试 android Timer

python - Hadoop Streaming 程序子进程失败,代码为 139

python - 使用pyspark从s3位置读取 Parquet 文件的文件夹到pyspark数据框

hadoop - 为什么Mapreduce中完成的任务数量会减少?

java - 目录是否由 Hadoop 缓存符号链接(symbolic link)处理?

java - 为什么 IdentityMapper 在 org.apache.hadoop.mapreduce 库中消失了?

java - PDFBox:禁用字体缓存或更改其位置