問題タブ [avro4s]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
4069 参照

apache-kafka - オプションのレコードを含む AVRO スキーマ

こんにちは、次の例の AVRO スキーマを作成する必要があります。

Accident と Owner はオプション オブジェクトであり、作成されたスキーマも次のサブセット メッセージを検証する必要があります。

私は AVRO の仕様を読み、多くのオプションの属性と配列の例を見ましたが、それらのどれも記録のために機能しませんでした。レコードをオプションとして定義するにはどうすればよいですか? ありがとう。

オプション属性のない次のスキーマは機能しています。

提案されたように所有者オブジェクトを変更すると、avro-tool がエラーを返します。

] }

テスト:

0 投票する
1 に答える
85 参照

scala - 暗黙的なオブジェクトはインラインで機能しますが、インポートされたときは機能しません

私はavro4savro シリアライゼーションとデシリアライゼーションを支援するために使用しています。

sを含むケース クラスがあり、レコードを Kafka に公開する前に、Timestampこれらの s を適切にフォーマットされた文字列に変換する必要があります。Timestampデフォルトのエンコーダーは私Timestampの s をLongs に変換しています。デコーダーとエンコーダーを作成する必要があることを読みました ( avro4sreadme から)。

これが私のケースクラスです:

次のエンコーダーを作成しました。

Test.scala

implicit object上記のようにインラインで宣言すると、GenericRecord探している が作成されます。implicit objectオブジェクトにラップされたファイルに抽象化しimport Implicits._、カスタムエンコーダーを使用しようとしました。

Implicits.scala

Test.scala

エンコーダーを使用できません (ブレークポイントにヒットしません)。私は無数のことを試してみて、なぜそれが役に立たないのかを調べました.

暗黙的なオブジェクトを正しくインポートするにはどうすればよいですか?

全体のエンコーダーを作成せずに、 myをcase classsにエンコードする簡単なソリューションはありますか?TimestampStringcase class