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 にパスまたは FSDataInputStream を与えることができません。HDFS で Avro ファイルを簡単に読み取るにはどうすればよいですか?
編集: SeekableInput を実装するカスタム クラス (SeekableHadoopInput) を作成することで、これを機能させました。これは github の「Ganglion」から「盗み」ました。それでも、これには Hadoop/Avro 統合パスがあるようです。
ありがとう