我正在尝试读取配置为 Avro 格式的 map-reduce 函数的结果 - 但我不能。
part-00000 文件的头部如下所示:
0 Objavro.codenullavro.schema G{
37 "类型": "记录",
59 "名称": "XXX",
82 "字段":[
98 {
108 "名称": "AAA",
141 "类型": [
163 "字符串",
189 "空"
212 ]
226 },
.
.
.
等等..(左边的数字在文件中!!
如何读取此文件?
有像avrocat和avropipe这样的实用程序。 avrocat
使用 Avro 规范定义的 JSON 编码在一行上输出 Avro 文件中的每条记录。 avropipe
为每条记录中的每个"字段"生成单独的行;它的输出(粗略地说)是通过 jsonpipe 工具管道传输每条记录的 JSON 编码所获得的。
参考: http://apache-avro.679487.n3.nabble.com/Getting-started-with-Avro-Reading-from-an-Avro-formatted-file-td3685069.html
您是否正在尝试手动阅读此内容?在.../java/avro-#.#.#/avro-tools-#.#.#.jar
https://www.apache.org/dyn/closer.cgi/avro/下载 avro-tools Jar,然后运行:
java -jar avro-tools-*.jar tojson part-00000.avro > part-00000-converted.json
如果您有有效的 Avro 输出,则 json 文件应包含存储在 part-00000.avro 中的对象。