問題タブ [spark-avro]

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 に答える
4839 参照

java - Avro スキーマのネストされたフィールドに値を設定する

GenericData.Record を使用して avro データを kafka に生成しようとしていますが、次の例外が発生しています。

スレッド「メイン」org.apache.avro.AvroRuntimeException の例外: 有効なスキーマ フィールドではありません: emailAddresses.email

ここに私のスキーマがあります:

私のJavaコードは以下の通りです:

ネストされた値をavroレコードに入れる方法を知っている人はいますか?

0 投票する
0 に答える
292 参照

google-cloud-platform - ゼロ バイトの avro ファイル例外

現在、avro 1.8.2 を使用してログ イベントを書き込んでいます。DataFileWriter が実際に 0 バイトのファイルを書き出す非常にまれなケースを観察しています。私が理解している限り、有効な avro ファイルには常にヘッダーが必要です。コード スニペットは次のようになります。

私が観察したのは 0 バイトの .log ファイルです。移動がアトミックであると仮定すると、ディスク上に 0 バイトの .log ファイルとして永続化されている破損した 0 バイトの avro .tmp ファイルを何らかの方法で書き込んでいると思います。0 バイトのファイルを読み返すと、次の例外が発生します。

java.io.IOException: データ ファイルではありません。62512: org.apache.avro.file.DataFileStream.initialize(DataFileStream.java:102) で 62513: org.apache.avro.file.DataFileStream.(DataFileStream.java:84) で

以前にそのような 0 バイトの破損した avro ファイルに遭遇した人はいますか? コードを調べてからの原因は何でしたか?ローカルで再現しようとすると、ヘッダーで常に数バイトを取得するため、これがどのように可能であるかが明確にわかりません。avro ファイルを閉じてアトミックに移動した後、実際に fsync する必要がありますか。メタデータまたはヘッダーがディスクに同期される前にファイルを移動します。(私の環境は GCP 上の Google コンピューティング インスタンスです)これのデバッグに関する洞察は本当に役に立ちます。