¿Qué es Apache Avro?

| Última modificación: 18 de abril de 2024 | Tiempo de Lectura: 2 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

El desarrollo del Big Data cuenta con una gran variedad de herramientas que facilitan la tarea de destacar y estudiar el valor de los datos. Dentro de ellos, podrás encontrar a Apache Avro como parte del procesamiento Big Data.

Esta es una de las herramientas empleadas por Apache Spark. Este sistema sobresale porque abarca una gran variedad de componentes para destacar el valor de los macrodatos. Es por ello que, en este post, te exponemos qué es Apache Avro y cómo se desarrolla dentro del universo de procesamiento Big Data.

¿Qué es Apache Avro?

Apache Avro es un formato binario para la serialización de datos que funciona con schemas; es decir, cuando se lee un Avro, el schema con el que se escribió está siempre presente.
De esta manera, no se producen overheads al realizar la serialización rápida, lo que también deriva en un bajo coste de tamaño.
Normalmente, cuando se almacena un fichero de Avro, el esquema se guarda con este y, de esta manera, siempre está presente. Aunque otro schema compatible puede leerlo.
Por otra parte, los schemas de Avro están escritos en formato JSON y, por ello, Apache AVRO se utiliza para el procesamiento en streaming. Además, soporta el procesamiento BATCH en ficheros.

{
“type”: “record”,
“name”: “userInfo”,
“namespace”: “my.example”,
“fields”: [
{ “name”: “username”, “type”: “string”, “default”: “NONE” },
{ “name”: “age”, “type”: “int”, “default”: -1 },
{ “name”: “phone”, “type”: “string”, “default”: “NONE” },
{ “name”: “housenum”, “type”: “string”, “default”: “NONE” },
{ “name”: “address”, “type”:
{
“type”: “record”, “name”: “mailing_address”, “fields”:
[
{ “name”: “street”, “type”: “string”, “default”: “NONE” },
{ “name”: “city”, “type”: “string”, “default”: “NONE” },
{ “name”: “state_prov”, “type”: “string”, “default”: “NONE” },
{ “name”: “country”, “type”: “string”, “default”: “NONE” },
{ “name”: “zip”, “type”: “string”, “default”: “NONE” }
]
}, “default”: {}
}
]
}

SparkSQL: Apache Avro

Spark SQL en Apache Spark necesita de una extensión para poder trabajar con Avro y poder hacer .format(«avro”).

libraryDependencies += «org.apache.spark»
%% «spark-avro» % «3.0.1»

Apache Avro permite indicar el tema por medio de options a la hora de hacer los read/write, mediante la propiedad avroSchema.

¿Qué es Spark SQL en Apache Spark? 2

Por otra parte, Avro también tiene tipos lógicos para soportar estructuras de datos más complejas que te compartimos a continuación:

¿Qué es Spark SQL en Apache Spark? 3


Por último, el tipo unión en Avro se utiliza para indicar que un campo puede tener distintos valores de tipo. Apache Spark realiza las siguientes traducciones:

  • Unión (int, long) a LongType.
  • Unión (float, double) a DoubleType.
  • Unión (any, null) Nullable. Este es el equivalente en Spark, pero la columna se marca como Nullable.
  • Si la unión es de dos tipos distintos, se consideran complejas y se traducen en una estructura con distintos miembros, así: union(int, string) à member0 (int), member1 (string).

Aprende más sobre procesamiento Big Data

En este post, te hemos expuesto cómo funciona Apache AVRO como una de las herramientas del sistema Apache Spark, sin embargo, todo ello debes llevarlo a la práctica y desarrollarlo por tu cuenta puede ser muy complicado. Por eso, desde KeepCoding, te ofrecemos nuestro Bootcamp Full Stack Big Data, Inteligencia Artificial & Machine Learning.

En este bootcamp, podrás aprender sobre las principales herramientas del universo del Big Data. Todo ello de forma tanto teórica como práctica y con el acompañamiento de grandes profesionales. De esta forma, en menos de nueve meses te habrás convertido en todo un experto. ¡Apúntate ahora!

Sandra Navarro

Business Intelligence & Big Data Advisor & Coordinadora del Bootcamp en Data Science, Big Data & Machine Learning.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Big Data, IA & Machine Learning

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado