Apache Spark es un motor de procesamiento distribuido diseñado para procesar datos estructurados, semiestructurados y no estructurados a gran escala. Para interactuar con el motor y definir operaciones de datos distribuidos, los desarrolladores usan la API de Spark.
En el centro del desarrollo moderno de Spark, se encuentra la API de DataFrame de Spark. Un DataFrame organiza y procesa datos distribuidos en columnas con nombre, de forma similar a una tabla en una base de datos relacional o una hoja de cálculo. Proporciona una interfaz estructurada y declarativa para analizar conjuntos de datos masivos, a la vez que optimiza automáticamente la ejecución física tras bambalinas.
Para comprender cómo la API de Spark ejecuta tu código en una red distribuida, es importante entender los componentes básicos de su arquitectura de entorno de ejecución:
Cuando diseñan canalizaciones de datos distribuidas, los desarrolladores eligen entre dos interfaces de programación principales:
Para casi todos los casos de uso de ingeniería de datos y ciencia de datos, la API de DataFrame es la opción preferida. Los RDD se reservan para situaciones en las que debes manipular datos sin procesar y no estructurados (como archivos binarios o transmisiones de contenido multimedia) con objetos de Java personalizados. Los DataFrames requieren menos código, se ejecutan automáticamente más rápido y utilizan la administración de memoria binaria fuera del montón para evitar los cuellos de botella de la recolección de elementos no utilizados de la JVM.
La API de DataFrame de Spark simplifica las tareas de procesar, limpiar y preparar grandes volúmenes de datos, que requieren procesamiento intensivo.
La API de DataFrame de Spark sirve como base programática para las bibliotecas de procesamiento avanzado de Spark:
Optimización declarativa
Los DataFrames usan un optimizador de consultas integrado llamado Catalyst Optimizer. Cuando escribes código de DataFrame, el optimizador reescribe automáticamente el plan de ejecución físico aplicando la reducción de filtros y proyecciones y el reordenamiento de uniones para que se ejecute lo más rápido posible sin ajustes manuales.
Flexibilidad de lenguajes
Ya sea que tu equipo escriba código en Python (PySpark), Scala, Java o R, la API de DataFrame garantiza un rendimiento idéntico. El plan de ejecución subyacente se compila y optimiza dentro de la misma capa de ejecución independiente de la JVM.
Administración eficiente de la memoria
DataFrame utiliza el motor de ejecución Tungsten para almacenar datos en un formato binario fuera del montón y altamente comprimido. Esto elimina la sobrecarga de creación de objetos de la JVM y evita que las pausas de recolección de elementos no utilizados congelen los subprocesos del ejecutor.
Ejecutar Spark de código abierto tradicionalmente requiere configuración manual de clústeres, administración de versiones de software y un intercambio de tráfico de red complejo. Google Cloud simplifica esto ofreciendo Managed Service para Apache Spark, que transforma la ejecución distribuida en una plataforma de datos completamente administrada y lista para empresas.
Los equipos de datos ejecutan cargas de trabajo de DataFrame de Spark en Google Cloud aprovechando las siguientes capacidades:
Comienza a desarrollar en Google Cloud con el crédito gratis de $300 y los más de 20 productos del nivel Siempre gratuito.