相关疑难解决方法(0)

使用C#反序列化Avro文件

我找不到用C#反序列化Apache Avro文件的方法.Avro文件是Microsoft Azure Event Hub中的存档功能生成的文件.

使用Java,我可以使用Apache的Avro Tools将文件转换为JSON:

java -jar avro-tools-1.8.1.jar tojson --pretty inputfile > output.json
Run Code Online (Sandbox Code Playgroud)

使用NuGet包Microsoft.Hadoop.Avro我能提取SequenceNumber,OffsetEnqueuedTimeUtc,但因为我不知道该用什么类型Body的异常被抛出.我试过Dictionary<string, object>和其他类型.

static void Main(string[] args)
{
    var fileName = "...";

    using (Stream stream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read))
    {
        using (var reader = AvroContainer.CreateReader<EventData>(stream))
        {
            using (var streamReader = new SequentialReader<EventData>(reader))
            {
                var record = streamReader.Objects.FirstOrDefault();
            }
        }
    }
}

[DataContract(Namespace = "Microsoft.ServiceBus.Messaging")]
public class EventData
{ …
Run Code Online (Sandbox Code Playgroud)

c# hadoop azure avro

13
推荐指数
3
解决办法
1万
查看次数

标签 统计

avro ×1

azure ×1

c# ×1

hadoop ×1