次のコードを使用して、ParquetWriterを作成し、レコードを書き込んでいます。既存の寄木細工のファイルにデータを追加する方法
ParquetWriter<GenericRecord> parquetWriter = new ParquetWriter(path, writeSupport, CompressionCodecName.SNAPPY, BLOCK_SIZE, PAGE_SIZE);
final GenericRecord record = new GenericData.Record(avroSchema);
parquetWriter.write(record);
しかし、それだけで(specfiedパスで)新しいファイルを作成することができます。 既存の寄木張りファイル(パス)にデータを追加する方法はありますか?私の場合、parquetWriterをキャッシュすることは実現不可能です。
が不正確です。寄木細工は列を塊にスライスし、列の一部を1つのファイル内の複数のまとまりに格納できるため、追加が可能です。寄木張りの背後にあるデザイン哲学を読んだら、フォーマットがブロックフッタ構造で判断して追加するように設計されていることは明らかです。 – travnik
https://spark.apache.org/docs/1.4.0/api/java/org/apache/spark/sql/SaveMode.html – bluszcz
私はappendが寄木細工クライアントAPIでサポートされていないと思います。私は、必要なチャンクだけを読むことをサポートする列の記憶装置に疑問を持っています。この場合、追加がどのように機能するかは、既存の列チャンクに追加するチャンスがある可能性があります。建築の詳細を持ったリンクがありますか? – Krishas