Introducción a Spark DataFrame

Se puede decir que un marco de datos de chispa es una recopilación de datos distribuidos que se organiza en columnas con nombre y también se usa para proporcionar operaciones como el filtrado, el cálculo de agregaciones, la agrupación y también se puede usar con Spark SQL. Los marcos de datos se pueden crear utilizando archivos de datos estructurados, junto con los RDD existentes, las bases de datos externas y las tablas de Hive. Básicamente se denomina y se conoce como una capa de abstracción que se construye sobre RDD y también es seguida por la API del conjunto de datos que se introdujo en versiones posteriores de Spark (2.0 +). Además, los conjuntos de datos no se introdujeron en Pyspark, sino solo en Scala con Spark, pero este no fue el caso en el caso de Dataframes. Los marcos de datos conocidos popularmente como DF son formatos de columnas lógicas que hacen que trabajar con RDD sea más fácil y más conveniente, y también hacen uso de las mismas funciones que los RDD de la misma manera. Si habla más en el nivel conceptual, es equivalente a las tablas relacionales junto con buenas características y técnicas de optimización.

¿Cómo crear un marco de datos?

Un marco de datos generalmente se crea mediante cualquiera de los métodos mencionados. Se puede crear utilizando tablas de Hive, bases de datos externas, archivos de datos estructurados o incluso en el caso de RDD existentes. Todas estas formas pueden crear estas columnas con nombre conocidas como Dataframes utilizadas para el procesamiento en Apache Spark. Al hacer uso de SQLContext o SparkSession, las aplicaciones se pueden usar para crear marcos de datos.

Operaciones Spark DataFrames

En Spark, un marco de datos es la distribución y recopilación de una forma organizada de datos en columnas con nombre que es equivalente a una base de datos relacional o un esquema o un marco de datos en un lenguaje como R o python pero junto con un nivel más rico de optimizaciones para ser utilizado. Se usa para proporcionar un tipo de dominio específico de un lenguaje que podría usarse para la manipulación estructurada de datos.

A continuación se mencionan algunas operaciones básicas de procesamiento de datos estructurados mediante el uso de marcos de datos.

1. Lectura de un documento de tipo: JSON: estaríamos utilizando el comando sqlContext.read.json.

Ejemplo: supongamos que nuestro nombre de archivo es student.json, entonces nuestro código se verá así:
val dfs= sqlContext.read.json(“student.json”)

Salida: en este caso, la salida será que los nombres de campo se tomarán automáticamente del archivo student.json.

2. Visualización de datos: para ver los datos en los marcos de datos de Spark, deberá utilizar el comando:
dfs.show ()

Ejemplo: supongamos que nuestro nombre de archivo es student.json, entonces nuestro código se verá así:
val dfs= sqlContext.read.json(“student.json”)
dfs.show()

Salida: los datos del alumno estarán presentes en formato tabular.

3. Uso del método printSchema: si está interesado en ver la estructura, es decir, el esquema del marco de datos, utilice el siguiente comando: dfs.printSchema ()

Ejemplo: supongamos que nuestro nombre de archivo es student.json, entonces nuestro código se verá así:

val dfs= sqlContext.read.json(“student.json”)
dfs. printSchema ()

Salida: la estructura o el esquema estarán presentes para usted

4. Utilice el método de selección: para utilizar el método de selección, se utilizará el siguiente comando para obtener los nombres y las columnas de la lista de marcos de datos.
dfs.select ("nombre-columna"). show ()

Ejemplo: supongamos que nuestro nombre de archivo es student.json, entonces nuestro código se verá así:
val dfs= sqlContext.read.json(“student.json”)
dfs.select(“name”).show()

Salida: se pueden ver los valores de la columna de nombre.

5. Uso del filtro de edad: el siguiente comando se puede usar para encontrar el rango de estudiantes cuya edad es mayor de 23 años.
dfs.filter (dfs ("nombre-columna")> valor) .show ()

Ejemplo: supongamos que nuestro nombre de archivo es student.json, entonces nuestro código se verá así:
val dfs= sqlContext.read.json(“student.json”)
dfs.filter(dfs(“age”)>23).show()

Salida: la edad filtrada por más de 23 años aparecerá en los resultados.

6. Uso del método groupBy: El siguiente método podría usarse para contar la cantidad de estudiantes que tienen la misma edad.
dfs.groupBy ("nombre-columna"). count (). show ()

Ejemplo: supongamos que nuestro nombre de archivo es student.json, entonces nuestro código se verá así:
val dfs= sqlContext.read.json(“student.json”)
dfs.groupBy(“age”).count().show()

7. Usar la función SQL en una SparkSession que permite a la aplicación ejecutar consultas de tipo SQL mediante programación y, por lo tanto, devuelve el resultado en forma de un marco de datos.
spark.sql (consulta)

Ejemplo: supongamos que tenemos que registrar el marco de datos SQL como una vista temporal y luego:
df.createOrReplaceTempView(“student”)
sqlDF=spark.sql(“select * from student”)
sqlDF.show()

Salida: se creará una vista temporal con el nombre del alumno y se aplicará una spark.sql encima para convertirla en un marco de datos.

8. Uso de la función SQL en una sesión Spark para la vista temporal global: esto permite que la aplicación ejecute consultas de tipo SQL mediante programación y, por lo tanto, devuelve el resultado en forma de un marco de datos.
spark.sql (consulta)

Ejemplo: supongamos que tenemos que registrar el marco de datos SQL como una vista temporal y luego:
df.createGlobalTempView(“student”)
park.sql(“select * from global_temp.student”).show()
spark.newSession().sql(“Select * from global_temp.student”).show()

Salida: se creará una vista temporal con el nombre del alumno y se aplicará una spark.sql encima para convertirla en un marco de datos.

Ventajas de Spark DataFrame

  1. El marco de datos es la colección distribuida de los datos y, por lo tanto, los datos se organizan en forma de columna con nombre.
  2. Son más o menos similares a la tabla en el caso de las bases de datos relacionales y tienen un amplio conjunto de optimización.
  3. Los marcos de datos se utilizan para potenciar las consultas escritas en SQL y también la API de marco de datos
  4. Se puede utilizar para procesar datos estructurados y no estructurados.
  5. El uso del catalizador optimizador hace que la optimización sea fácil y efectiva.
  6. Las bibliotecas están presentes en muchos idiomas, como Python, Scala, Java y R.
  7. Esto se usa para proporcionar una fuerte compatibilidad con Hive y se usa para ejecutar consultas de Hive no modificadas en el almacén de colmena ya presente.
  8. Puede escalar muy bien desde unos pocos kbs en el sistema personal hasta muchos petabytes en los grandes grupos.
  9. Se utiliza para proporcionar un nivel fácil de integración con otras tecnologías y marcos de big data.
  10. La abstracción que proporcionan a los RDD es eficiente y hace que el procesamiento sea más rápido.

Conclusión - Spark DataFrame

En esta publicación, ha aprendido una característica muy crítica de Apache Spark, que son los marcos de datos y su uso en las aplicaciones que se ejecutan hoy junto con operaciones y ventajas. Espero que les haya gustado nuestro artículo. Estén atentos para más como estos.

Artículos recomendados

Esta ha sido una guía para Spark DataFrame. Aquí discutimos cómo crear un DataFrame? sus ventajas y las diferentes operaciones de DataFrames junto con el código de muestra apropiado. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. Spark Streaming
  2. Cómo instalar Spark
  3. Carrera en Spark
  4. Preguntas de la entrevista de Spark
  5. Marcos de datos en R
  6. 7 diferentes tipos de combinaciones en Spark SQL (ejemplos)
  7. PySpark SQL | Módulos y métodos de PySpark SQL
  8. Componentes de chispa | Descripción general de los componentes de Spark

Categoría: