una txt sobreescribir partir lista importar gestion ficheros escribir ejemplos datos crear como binarios archivos archivo python apache-spark apache-spark-sql parquet snappy

txt - gestion de archivos en python



¿Métodos para escribir archivos de parquet usando Python? (3)

Tengo problemas para encontrar una biblioteca que permita escribir archivos de Parquet con Python. Puntos de bonificación si puedo usar Snappy o un mecanismo de compresión similar junto con él.

Hasta ahora, el único método que he encontrado es usar Spark con el pyspark.sql.DataFrame parquet pyspark.sql.DataFrame .

Tengo algunos scripts que necesitan escribir archivos de Parquet que no son trabajos de Spark. ¿Hay algún método para escribir archivos de parquet en Python que no implique pyspark.sql ?


usando fastparquet puede escribir un pandas df a parquet, ya sea con snappy o gzip , de la siguiente manera:

Asegúrate de haber instalado lo siguiente:

$ conda install python-snappy $ conda install fastparquet

hacer importaciones

import pandas as pd import snappy import fastparquet

asume que tienes los siguientes pandas df

df = pd.DataFrame(data={''col1'': [1, 2], ''col2'': [3, 4]})

enviar df a parquet con snappy compresión

df.to_parquet(''df.snap.parquet'',compression=''snappy'')

enviar df a parquet con compresión gzip

df.to_parquet(''df.gzip.parquet'',compression=''gzip'')

comprobar:

leer parquet de nuevo en pandas df

pd.read_parquet(''df.snap.parquet'')

o

pd.read_parquet(''df.gzip.parquet'')

salida:

col1 col2 0 1 3 1 2 4


fastparquet tiene soporte de escritura, aquí hay un fragmento para escribir datos en un archivo

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


Actualización (marzo de 2017): Actualmente hay 2 bibliotecas capaces de escribir archivos de parquet:

  1. fastparquet
  2. pyarrow

Parece que ambos están aún en un gran desarrollo y vienen con una serie de exenciones de responsabilidad (por ejemplo, no admiten datos anidados), por lo que tendrá que comprobar si admiten todo lo que necesita.

ANTIGUA RESPUESTA:

A partir de la 2.2016 parece que NO hay una biblioteca solo para python capaz de escribir archivos Parquet.

Si solo necesitas leer los archivos de Parquet hay python-parquet .

Como solución pyspark.sql , tendrá que confiar en algún otro proceso, como pyspark.sql (que utiliza Py4J y se ejecuta en la JVM, por lo que no se puede usar directamente desde su programa de CPython promedio).