我有一个avro文件。 我想使用nodejs打开并读取其架构并遍历其记录。 这该怎么做?我在nodejs中看到的avro库似乎要求你传入一个模式而不是从.avro文件中获取模式。此外,我希望能够支持数组,这些数组似乎不存在一个节点库(node-avro-io)。
我的avro / avroschema包含:
我得到node-avro-io的错误:
Avro Invalid Schema Error: Primitive type must be one of: ["null","boolean","int","long","float","double","bytes","string"]; got DependencyNode
答案 0 :(得分:1)
如果您仍然在寻找,可以使用avsc
执行此操作。代码看起来像:
var avro = require('avsc');
// To stream the file's records (they will already be decoded):
avro.createFileDecoder('your/data.avro')
.on('data', function (record) { /* Do something with the record. */ });
// Or, if you just want the file's header (which includes the schema):
var header = avro.extractFileHeader('your/data.avro');
答案 1 :(得分:0)
如果你想打开一个文件,可以在这里找到以下代码:https://www.npmjs.com/package/node-avro-io可以解决这个问题:
var DataFile = require("node-avro-io").DataFile;
var avro = DataFile.AvroFile();
var reader = avro.open('test.avro', { flags: 'r' });
reader.on('data', function(data) {
console.log(data);
});