Saltar al contenido

PyArrow: almacena la lista de dictados en parquet usando tipos anidados

Buscamos en diferentes foros para así regalarte la solución para tu inquietud, si tienes alguna duda puedes dejar la pregunta y responderemos porque estamos para servirte.

Solución:

De acuerdo con este problema de Jira, en la versión 2.0.0 se implementó la lectura y escritura de datos de Parquet anidados con una combinación de niveles de anidamiento de estructuras y listas.

El siguiente ejemplo demuestra la funcionalidad implementada haciendo un viaje de ida y vuelta: marco de datos de pandas -> archivo de parquet -> marco de datos de pandas. La versión de PyArrow utilizada es 3.0.0.

El marco de datos pandas inicial tiene un archivo de tipo lista de dictados y una entrada:

                  field
0  ['a': 1, 'a': 2]

Código de ejemplo:

import pandas as pd
import pyarrow as pa
import pyarrow.parquet

df = pd.DataFrame('field': [['a': 1, 'a': 2]])
schema = pa.schema(
    [pa.field('field', pa.list_(pa.struct([('a', pa.int64())])))])
table_write = pa.Table.from_pandas(df, schema=schema, preserve_index=False)
pyarrow.parquet.write_table(table_write, 'test.parquet')
table_read = pyarrow.parquet.read_table('test.parquet')
table_read.to_pandas()

El marco de datos de salida es el mismo que el marco de datos de entrada, como debería ser:

                  field
0  ['a': 1, 'a': 2]

Recuerda que puedes mostrar esta noticia si te valió la pena.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *