2015-10-05 25 views
17

Ho difficoltà a trovare una libreria che permetta ai file Parquet di essere scritti usando Python. Punti bonus se posso usare Snappy o un meccanismo di compressione simile in congiunzione con esso.Metodi per scrivere file Parquet usando Python?

Finora l'unico metodo che ho trovato è l'utilizzo di Spark con il supporto per parquet pyspark.sql.DataFrame.

Ho alcuni script che devono scrivere i file Parquet che non sono lavori Spark. C'è un approccio alla scrittura di file Parquet in Python che non coinvolge lo pyspark.sql?

+0

sembra che il formato Parquet ha thirft file di definizione non è possibile utilizzare questo per accedervi? – Srgrn

risposta

12

Update (marzo 2017): momento non ci sono librerie capaci di scrittura file parquet:

  1. fastparquet
  2. pyarrow

Entrambi sono ancora in fase di sembra che lo sviluppo pesante e vengono con un certo numero di disclaimer (senza suppor t per i dati nidificati, ad es.), quindi dovrai verificare se supportano tutto ciò di cui hai bisogno.

RISPOSTA VECCHIO:

Come di 2,2016 ci sembra non esserci file Parquet python-unica biblioteca in grado di scrittura.

Se è necessario solo leggere file di Parquet c'è python-parquet.

Come soluzione temporanea, è necessario fare affidamento su altri processi come ad es. pyspark.sql (che usa Py4J e gira su JVM e quindi non può essere usato direttamente dal tuo programma CPython medio).

+1

Se è necessario essere in grado di aggiungere dati a file esistenti, come scrivere più dfs in batch, fastparquet fa il trucco. Non sono riuscito a trovare una sola menzione di append in pyarrow e sembra che il codice non sia pronto per questo (marzo 2017). – Kieleth

4

fastparquet hanno supporto alla scrittura, ecco un frammento di scrivere dati in un file

from fastparquet import write 
write('outfile.parq', df)