Visión general
- Comprenda la diferencia entre las API de 3 chispas: RDD, marcos de datos y conjuntos de datos
- Veremos cómo crear RDD, marcos de datos y conjuntos de datos.
Introducción
Han pasado 11 años desde Apache Spark comenzó a existir y, de manera impresionante y continua, se convirtió en la primera opción de los desarrolladores de big data. A los desarrolladores siempre les ha encantado por proporcionar API sencillas y potentes que pueden realizar cualquier tipo de análisis de big data.
Inicialmente, en 2011 se les ocurrió el concepto de RDD, después en 2013 con Dataframes y más tarde en 2015 con el concepto de Datasets. Ninguno de ellos se ha depreciado, aún podemos usarlos todos. En este post, entenderemos y veremos la diferencia entre los tres.
Tabla de contenido
- ¿Qué son los RDD?
- ¿Cuándo utilizar RDD?
- ¿Qué son los marcos de datos?
- ¿Qué son los conjuntos de datos?
- RDD vs Dataframes vs Datasets?
¿Qué son los RDD?
Los RDD o conjuntos de datos distribuidos resilientes son la estructura de datos fundamental de Spark. Es la colección de objetos que es capaz de almacenar los datos particionados en los múltiples nodos del clústerUn clúster es un conjunto de empresas y organizaciones interconectadas que operan en un mismo sector o área geográfica, y que colaboran para mejorar su competitividad. Estos agrupamientos permiten compartir recursos, conocimientos y tecnologías, fomentando la innovación y el crecimiento económico. Los clústeres pueden abarcar diversas industrias, desde tecnología hasta agricultura, y son fundamentales para el desarrollo regional y la creación de empleo.... y además les posibilita hacer el procesamiento en paraleloEl procesamiento en paralelo es una técnica que permite ejecutar múltiples operaciones simultáneamente, dividiendo tareas complejas en subtareas más pequeñas. Esta metodología optimiza el uso de recursos computacionales y reduce el tiempo de procesamiento, siendo especialmente útil en aplicaciones como el análisis de grandes volúmenes de datos, simulaciones y renderización gráfica. Su implementación se ha vuelto esencial en sistemas de alto rendimiento y en la computación moderna.....
Es tolerante a fallas si realiza múltiples transformaciones en el RDD y después, por cualquier motivo, falla algún nodoNodo es una plataforma digital que facilita la conexión entre profesionales y empresas en busca de talento. A través de un sistema intuitivo, permite a los usuarios crear perfiles, compartir experiencias y acceder a oportunidades laborales. Su enfoque en la colaboración y el networking hace de Nodo una herramienta valiosa para quienes desean expandir su red profesional y encontrar proyectos que se alineen con sus habilidades y objetivos..... El RDD, en ese caso, es capaz de recuperarse automáticamente.
Hay 3 alternativas para crear un RDD:
- Paralelar una colección de datos existente
- Referencia al archivo de datos externo almacenado
- Creando RDD a partir de un RDD ya existente
¿Cuándo utilizar RDD?
Podemos usar RDD en las siguientes situaciones:
- Cuando queremos hacer transformaciones de bajo nivel en el conjunto de datos. Leer más sobre Transformaciones RDD: PySpark para realizar Transformaciones
- No infiere automáticamente el esquema de los datos ingeridos, necesitamos especificar el esquema de todos y cada uno de los conjuntos de datos cuando creamos un RDD. Aprenda a inferir el esquema del RDD aquí: Creación de canalizaciones de aprendizaje automático con PySpark
¿Qué son los marcos de datos?
Se introdujo por primera vez en Spark versión 1.3 para superar las limitaciones del Spark RDD. Spark Dataframes son la colección distribuida de los puntos de datos, pero aquí, los datos se organizan en las columnas nombradas. Posibilitan a los desarrolladores depurar el código a lo largo del tiempo de ejecución, lo que no estaba permitido con los RDD.
Los marcos de datos pueden leer y escribir los datos en varios formatos como CSV, JSONJSON, o JavaScript Object Notation, es un formato ligero de intercambio de datos que es fácil de leer y escribir para los humanos, y fácil de analizar y generar para las máquinas. Se utiliza comúnmente en aplicaciones web para enviar y recibir información entre un servidor y un cliente. Su estructura se basa en pares de clave-valor, lo que lo hace versátil y ampliamente adoptado en el desarrollo de software..., AVRO, HDFSHDFS, o Sistema de Archivos Distribuido de Hadoop, es una infraestructura clave para el almacenamiento de grandes volúmenes de datos. Diseñado para ejecutarse en hardware común, HDFS permite la distribución de datos en múltiples nodos, garantizando alta disponibilidad y tolerancia a fallos. Su arquitectura se basa en un modelo maestro-esclavo, donde un nodo maestro gestiona el sistema y los nodos esclavos almacenan los datos, facilitando el procesamiento eficiente de información... y tablas HIVEHive es una plataforma de redes sociales descentralizada que permite a sus usuarios compartir contenido y conectar con otros sin la intervención de una autoridad central. Utiliza tecnología blockchain para garantizar la seguridad y la propiedad de los datos. A diferencia de otras redes sociales, Hive permite a los usuarios monetizar su contenido a través de recompensas en criptomonedas, lo que fomenta la creación y el intercambio activo de información..... Ya está optimizado para procesar grandes conjuntos de datos para la mayoría de las tareas de preprocesamiento, por lo que no necesitamos escribir funciones complejas por nuestra cuenta.
Utiliza un optimizador de catalizador con fines de optimización. Si desea leer más sobre el optimizador de catalizador, le recomiendo encarecidamente que lea este post: Tutorial práctico para analizar datos usando Spark SQL
Veamos cómo crear un marco de datos usando PySpark.
¿Qué son los conjuntos de datos?
Spark Datasets es una extensión de la API de marcos de datos con los beneficios de los RDD y los conjuntos de datos. Es rápido y proporciona una interfaz de tipo seguro. La seguridad de tipos significa que el compilador validará los tipos de datos de todas las columnas en el conjunto de datos durante la compilación solamente y arrojará un error si hay alguna discrepancia en los tipos de datos.
Los usuarios de RDD lo encontrarán algo semejante al código, pero es más rápido que los RDD. Puede procesar de manera eficiente datos estructurados y no estructurados.
Aún no podemos crear conjuntos de datos Spark en Python. La API del conjunto de datos solo está habilitada en Scala y Java.
RDD frente a marcos de datos frente a conjuntos de datos
RDD | Marcos de datos | Conjuntos de datos | |
Representación de datos | RDD es una colección distribuida de ítems de datos sin ningún esquema. | Además es la colección distribuida organizada en las columnas nombradas. | Es una extensión de Dataframes con más características como seguridad de tipos e interfaz orientada a objetos. |
Mejoramiento | Sin motor de optimización incorporado para RDD. Los desarrolladores deben escribir el código optimizado ellos mismos. | Utiliza un optimizador de catalizador para la optimización. | Además utiliza un optimizador de catalizador con fines de optimización. |
Proyección de esquema | Aquí, necesitamos establecer el esquema manualmente. | Descubrirá automáticamente el esquema del conjunto de datos. | Además encontrará automáticamente el esquema del conjunto de datos a través de el motor SQL. |
Operación de agregación | RDD es más lento que los marcos de datos y los conjuntos de datos para realizar operaciones simples como agrupar los datos. | Proporciona una API sencilla para realizar operaciones de agregación. Realiza la agregación más rápido que los RDD y los conjuntos de datos. | El conjunto de datos es más rápido que los RDD pero un poco más lento que los Dataframes. |
Notas finales
En este post, hemos visto la diferencia entre las tres API principales de Apache SparkApache Spark es un motor de procesamiento de datos de código abierto que permite el análisis de grandes volúmenes de información de manera rápida y eficiente. Su diseño se basa en la memoria, lo que optimiza el rendimiento en comparación con otras herramientas de procesamiento por lotes. Spark es ampliamente utilizado en aplicaciones de big data, machine learning y análisis en tiempo real, gracias a su facilidad de uso y.... Entonces, para concluir, si desea una semántica rica, abstracciones de alto nivel, seguridad de tipos, elija Dataframes o Datasets. Si necesita más control sobre la parte de preprocesamiento, siempre puede usar los RDD.
Le recomiendo que consulte estos recursos adicionales en Apache Spark para impulsar su conocimiento:
Si este post le pareció informativo, compártalo con sus amigos, y además si desea dar alguna sugerencia sobre lo que debería cubrir, no dude en dejarlas en las notas a continuación.
Relacionado
Posts Relacionados:
- Conjuntos de datos de Kaggle | Principales conjuntos de datos de Kaggle para practicar para los científicos de datos
- Diferencias entre cifrado de datos, enmascaramiento de datos y codificación de datos
- Diferencias entre data mart, data lake, data warehouse y data cube
- Diferencias entre una estrategia omnicanal y multicanal