Formato Parquet

Avatar de Usuario
Dalamar
Site Admin
Mensajes: 8709
Registrado: 09 May 2012 01:38

Formato Parquet

Mensajepor Dalamar » 09 Feb 2017 07:28

Parquet es un formato muy eficiente comparado con CSVs, tiene compresion, guarda el metadata, se pueden lanzar queries de forma muy eficiente a Parquet directamente desde Drill o Spark.

Ver: https://www.tutorialspoint.com/spark_sq ... _files.htm

Hay que tener en cuenta que las columnas que necesitamos en nuestras queries son las unicas que se leen, cuando usamos parquet, lo cual es eficiente si tenemos tablas amplias y no siempre necesitamos muchas de sus columnas.

Usando Spark y Scala podemos: (Podre ejemplos de como hacerlo mas adelante)

    1. Leer un csv y convertirlo en un archivo en formato parquet.
    2. Leer un archivo parquet y lanzar queries en SQL sobre el.

Notas:

- Si tienes comillas dentro de tu csv vas a tener un error de tipo "java.io.IOException: (line 1) invalid char between encapsulated token and delimiter" esto se soluciona con: .option("quote", "\u0000")
- Si quieres generar un unico archivo parquet en vez de varios puedes usar: df.coalesce(1).write.parquet...

Otros:

- Leer Parquet desde Python (http://pyarrow.readthedocs.io/en/latest/parquet.html)
¿Te ha gustado este hilo? Compartelo en las redes sociales para que se sume mas gente a la conversacion!

Avatar de Usuario
Dalamar
Site Admin
Mensajes: 8709
Registrado: 09 May 2012 01:38

Re: Formato Parquet

Mensajepor Dalamar » 02 Sep 2017 08:08

Aqui hay un ejemplo claro de como leer un archivo parsearlo, considerando nulls y guardarlo en parquet.

Ademas de una comparacion de performance entre archivos planos y parquet.

Nota: Parquet permite nesting de columnas de forma ilimitada, algo muy util si estamos almacenando JSONs.
Adjuntos
Parquet1.JPG
Parquet2.JPG
WriteToParquet1.JPG
WriteToParquet2.JPG
WriteToParquet3.JPG
¿Te ha gustado este hilo? Compartelo en las redes sociales para que se sume mas gente a la conversacion!


Volver a “Big Data”

cron

Ingresar