我正在尝试简单读取存储在 HDFS 中的 Avro 文件。我发现了如何在本地文件系统上读取它....
FileReader reader = DataFileReader.openReader(new File(filename), new GenericDatumReader());
for (GenericRecord datum : fileReader) {
String value = datum.get(1).toString();
System.out.println("value = " value);
}
reader.close();
但是,我的文件在 HDFS 中。我不能给 openReader 一个 Path 或一个 FSDataInputStream。如何在 HDFS 中简单地读取 Avro 文件?
编辑:我通过创建一个实现 SeekableInput 的自定义类(SeekableHadoopInput)来实现这一点。我从 github 上的“Ganglion”“偷”了这个。尽管如此,似乎会有一个 Hadoop/Avro 集成路径。
谢谢