前提・実現したいこと
AzureのEventHubから出力されたAvroファイルの編集プログラムをC#で作成しています。
Body部分のみを編集し、残りの部分は変えずに保存したいと考えています。
すみませんが,どなたかご教授頂けると幸いです。
よろしくお願いします。
該当のソースコード
C#
1var fileName = "....avro"; 2 3using (Stream stream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read)) 4{ 5 using (var reader = AvroContainer.CreateGenericReader(stream)) 6 { 7 while (reader.MoveNext()) 8 { 9 foreach (dynamic record in reader.Current.Objects) 10 { 11 var sequenceNumber = record.SequenceNumber; 12 var bodyText = Encoding.UTF8.GetString(record.Body); 13 Console.WriteLine($"{sequenceNumber}: {bodyText}"); 14 } 15 } 16 } 17}
試したこと
まず、テキストデータとして、StreamReader
で読込、StreamWriter
で書き込むというのを試しました。
しかし、Header部分が文字コードの関係かわからないのですが、変わってしまいました。
次に、NuGetパッケージMicrosoft.Hadoop.Avroというものがあると見つけました。
しかし、読込のソースコードは見つけたのですが、私が求めているようなサンプルは見つけることができませんでした。
上記は読込のサンプルコードになります。
補足情報(FW/ツールのバージョンなど)
C#
Microsoft.Hadoop.Avro2 1.2.1
あなたの回答
tips
プレビュー