Ho un file di parquet piuttosto pesante in cui è necessario modificare i valori per una colonna. Un modo per farlo sarebbe quello di aggiornare quei valori nei file di testo sorgente e ricreare il file parquet, ma mi chiedo se ci sia una soluzione meno costosa e più semplice a questo.Aggiornamento dei valori nel file di file apache
risposta
Consente di iniziare con basi
- parquet se un fileFormat, ma ha bisogno di essere salvati in un file system.
- Il Parquet supporta l'accodamento. ?
- Fa FileSystem (HDFS) consentire Aggiungi sul file.
- Anche se tutti sono vere fa il quadro del lavoro (Spark) è in grado di gestire accodare
Risposte:
parquet: parquet.hadoop.ParquetFileWriter supporta solo creare e sovrascrivere ma non accodamento modalità. (Non sono sicuro, ma questo può cambiare in altre implementazioni, il design in legno non supporto accoda)
HDFS HDFS permette accodare il file utilizzando (proprietà dfs.support.append)
quadro Spark non supporta accoda agli attuali file di parquet.
prega di passare attraverso
http://bytepadding.com/big-data/spark/read-write-parquet-files-using-spark/
http://bytepadding.com/linux/understanding-basics-of-filesystem/
per una comprensione dettagliata.
Grazie per la risposta dettagliata e informazioni di base. questo è utile – Keith
È necessario ricreare il file, questo è il modo Hadoop. Soprattutto se il file è compresso.
Un altro approccio, (molto comune nei Big-data), consiste nell'effettuare l'aggiornamento su un altro file Parquet (o ORC), quindi JOIN/UNION al momento della query.
No. È necessario ricreare il file. –
@DanOsipov Grazie. Presumo che questa limitazione sia dovuta a vari algoritmi di compressione usati dove non sarebbe facile o addirittura possibile aggiornare i valori delle colonne. –
Direi, questa è una domanda molto più fondamentale, piuttosto che una domanda specifica per il parquet. Nel mondo degli alti volumi di dati, dove il parquet è molto usato, l'immutabilità è qualcosa che ti interessa. Da questa prospettiva vorrai caricare i dati, trasformarli e poi riscriverli. Potresti considerare di scrivere solo le colonne di cui hai bisogno, il che lo rende più efficiente poiché è un formato a colonne. –