web-dev-qa-db-fra.com

Comment ajouter des données à un fichier parquet existant

J'utilise le code suivant pour créer ParquetWriter et pour y écrire des enregistrements.

ParquetWriter<GenericRecord> parquetWriter = new ParquetWriter(path, writeSupport, CompressionCodecName.SNAPPY, BLOCK_SIZE, PAGE_SIZE);

final GenericRecord record = new GenericData.Record(avroSchema);

parquetWriter.write(record);

Mais cela ne permet que de créer de nouveaux fichiers (au chemin spécifié). Existe-t-il un moyen d'ajouter des données à un fichier parquet existant (au chemin)? La mise en cache parquetWriter n'est pas réalisable dans mon cas.

9
Krishas

Il existe un Spark API SaveMode appelé append: https://spark.Apache.org/docs/1.4.0/api/Java/org/Apache/spark/sql/ SaveMode.html qui, je crois, résout votre problème.

Exemple d'utilisation:

df.write.mode('append').parquet('parquet_data_file')
4
bluszcz