El principal punto de entrada para las funciones de chispa
SparkContext es el principal punto de entrada para la funcionalidad Spark.
SparkContext es la entrada principal a las funciones de Spark. Representa la conexión al clúster de Spark y se puede utilizar para crear RDD, acumuladores, variables de transmisión, etc. en el clúster. En una aplicación Spark, solo puede haber un SparkContext activo en cada JVM. Se debe llamar a Stop() para cerrar el SparkContext anterior antes de crear un nuevo SparkContext.
Durante el proceso de inicialización de SparkContext, Spark creará módulos de programación de dos niveles: trabajo DAGScheduler y programación de tareas TaskScheduler. Se puede decir que SparkContext es la entrada a Spark, equivalente a la función principal de la aplicación. Se pueden crear varios SparkContexts en un proceso JVM, pero solo uno puede estar activo.
Además, SparkContext también puede interactuar con DAGScheduler y TaskScheduler de Spark, que son las partes centrales de la programación de tareas de Spark. DAGScheduler es responsable de convertir tareas en formato DAG (gráfico acíclico dirigido) y de dividir y programar tareas en función de las dependencias de datos. TaskScheduler es responsable de distribuir tareas en el DAG a cada nodo del clúster para su ejecución.
El origen y características de Spark:
Spark es un sistema informático de clúster de código abierto basado en computación en memoria, diseñado para hacer que el análisis de datos sea más rápido y eficiente. Spark fue desarrollado por el Laboratorio AMP de la Universidad de California, Berkeley, en 2009 y de código abierto en 2010. Se convirtió en un proyecto de incubación de Apache en junio de 2013 y en un proyecto de alto nivel de Apache en febrero de 2014.
Spark está escrito en el lenguaje Scala y no solo está estrechamente integrado con Scala, sino que también se integra perfectamente con lenguajes de programación como Java y Python. Spark adopta una arquitectura informática distribuida basada en memoria, que le permite procesar datos a gran escala de manera más eficiente y admite una variedad de modelos informáticos, incluidas consultas interactivas y procesamiento de flujo.