Pyspark Rdd - Intersección, cartesiano

Pyspark Rdd - Intersección, cartesiano
En Python, Pyspark es un módulo Spark utilizado para proporcionar un tipo similar de procesamiento como Spark usando DataFrame.

RDD significa conjuntos de datos distribuidos resilientes. Podemos llamar a RDD una estructura de datos fundamental en Apache Spark. Almacenará los datos en forma de filas y columnas similares a un marco de datos o linealmente.

Necesitamos importar RDD del Pyspark.módulo RDD.

Entonces, en Pyspark para crear datos o un marcado de datos, tenemos que usar el método Parallelize ().

Sintaxis:

Spark_app.sparkcontext.Paralelizar (datos)

Dónde,

Los datos pueden ser un dimensional (datos lineales) o dos dimensionales (datos de columna de fila).

En este tutorial, aprenderemos sobre las operaciones de Pyspark Rdd RechT () y Distint ().

Pyspark RDD - Intersection ()

intersección() En RDD devolverá el nuevo RDD que incluye los elementos presentes en el primer RDD, así como en el segundo RDD. Simplemente, solo devuelve elementos comunes de ambos RDD.

Entonces, necesitamos dos RDD para realizar esta operación.

Sintaxis:

Rdd_data1.intersección (rdd_data2)

Dónde,

  1. Rdd_data1 es el primer RDD.
  2. Rdd_data2 es el segundo rdd.

Ejemplo 1:

En este ejemplo, crearemos dos RDD con datos numéricos - Sujets_1 y Sujets_2 y realizaremos intersección () en dos RDDS.

#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
# Importar RDD de Pyspark.RDD
de Pyspark.RDD import rdd
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Crear 5 - Marcas de sujeto
Sujetos_1 = Spark_App.sparkcontext.Paralelice ([100,34,56,54,45])
#display subjets_1 rdd
imprimir ("Sujems_1 Rdd:", Sujets_1.recolectar())
# Crear 5 - Marcas de sujeto
Sujetos_2 = Spark_App.sparkcontext.Paralelice ([90,89,34,56,45])
#display subjets_2 rdd
imprimir ("Sujets_2 Rdd:", Sujets_2.recolectar())
#perform intersection () operación en dos RDD
print ("intersection () operación en temas_1 y temas_2:", temas_1.intersección (sujetos_2).recolectar())

Producción:

Sujetos_1 RDD: [100, 34, 56, 54, 45]
Sujetos_2 Rdd: [90, 89, 34, 56, 45]
intersección () operación en los sujetos_1 y los sujetos_2: [56, 45, 34]

Desde la salida, podemos ver que hay 5 elementos en ambos RDDS.

Estamos realizando una intersección en los sujetos_1 y los sujetos_2. Aquí 56,45 y 34 están presentes en los sujetos_1 y los sujetos_2. Entonces, fueron devueltos.

Ejemplo 2:

En este ejemplo, crearemos dos RDD con cadenas - Sujetos_1 y Sujetos_2 y realizaremos intersección () en dos RDDS.

#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
# Importar RDD de Pyspark.RDD
de Pyspark.RDD import rdd
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Crear 3 - Nombres de asignaturas
Sujetos_1 = Spark_App.sparkcontext.Paralelize (["Linux", "Bash", "JavaScript"))
#display subjets_1 rdd
imprimir ("Sujems_1 Rdd:", Sujets_1.recolectar())
# Crear 2 - nombres de asignaturas
Sujetos_2 = Spark_App.sparkcontext.Paralelize (["Linux", "Java"])
#display subjets_2 rdd
imprimir ("Sujets_2 Rdd:", Sujets_2.recolectar())
#perform intersection () operación en dos RDD
print ("intersection () operación en temas_1 y temas_2:", temas_1.intersección (sujetos_2).recolectar())

Producción:

Sujets_1 rdd: ['Linux', 'Bash', 'JavaScript']
Sujetos_2 rdd: ['Linux', 'Java']
intersección () operación en temas_1 y temas_2: ['Linux']

Desde la salida, podemos ver que solo 'Linux' es común en ambos RDDS. Entonces, se devuelve.

Pyspark Rdd - Cartesian ()

cartesiano() en RDD devolverá el nuevo RDD que incluye todos los elementos de ambos RDDS. Devuelve un producto cartesiano de tal manera que cada elemento en el primer RDD se combina con todos los elementos del segundo RDD en forma de par.

Entonces, necesitamos dos RDD para realizar esta operación.

Sintaxis:

Rdd_data1.cartesiano (rdd_data2)

Dónde,

  1. Rdd_data1 es el primer RDD.
  2. Rdd_data2 es el segundo rdd.

Ejemplo 1:

En este ejemplo, crearemos dos RDD con datos numéricos: Sujets_1 y Sujetos_2 y realizaremos Cartesian () en dos RDDS.

#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
# Importar RDD de Pyspark.RDD
de Pyspark.RDD import rdd
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Crear 2 - Marcas de sujeto
Sujetos_1 = Spark_App.sparkcontext.Paralelizar ([100,34])
#display subjets_1 rdd
imprimir ("Sujems_1 Rdd:", Sujets_1.recolectar())
# Crear 2 - Marcas de sujeto
Sujetos_2 = Spark_App.sparkcontext.Paralelizar ([56,45])
#display subjets_2 rdd
imprimir ("Sujets_2 Rdd:", Sujets_2.recolectar())
#PERFOR Cartesian () Operación en arriba de dos RDD
imprimir ("Cartesian () Operation on temas_1 y temas_2:", temas_1.cartesiano (sujetos_2).recolectar())

Producción:

Sujetos_1 RDD: [100, 34]
Sujetos_2 RDD: [56, 45]
Cartesian () Operación en los sujetos_1 y los sujetos_2: [(100, 56), (100, 45), (34, 56), (34, 45)]

Desde la salida, podemos ver que hay 2 elementos en ambos RDDS.

Estamos realizando un cartesiano en los sujetos_1 y temas_2. Los elementos de los sujetos_1 se combinan con todos y cada uno de los elementos de los sujetos_2.

Ejemplo 2:

En este ejemplo, crearemos dos RDD con cadenas - Sujetos_1 y Sujetos_2 y realizaremos cartesian () en dos RDDS.

#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
# Importar RDD de Pyspark.RDD
de Pyspark.RDD import rdd
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Crear 3 - Nombres de asignaturas
Sujetos_1 = Spark_App.sparkcontext.Paralelize (["Linux", "Bash", "JavaScript"))
#display subjets_1 rdd
imprimir ("Sujems_1 Rdd:", Sujets_1.recolectar())
# Crear 2 - nombres de asignaturas
Sujetos_2 = Spark_App.sparkcontext.Paralelize (["Linux", "Java"])
#display subjets_2 rdd
imprimir ("Sujets_2 Rdd:", Sujets_2.recolectar())
#PERFOR Cartesian () Operación en arriba de dos RDD
imprimir ("Cartesian () Operation on temas_1 y temas_2:", temas_1.cartesiano (sujetos_2).recolectar())

Producción:

Sujets_1 rdd: ['Linux', 'Bash', 'JavaScript']
Sujetos_2 rdd: ['Linux', 'Java']
Cartesian () operación en temas_1 y temas_2: [('Linux', 'Linux'), ('Linux', 'Java'), ('Bash', 'Linux'), ('JavaScript', 'Linux'),), ('Bash', 'Java'), ('JavaScript', 'Java')]]

Desde la salida, podemos ver que hay 3 elementos en el primer RDD y 2 elementos en el segundo RDD.

Estamos realizando un cartesiano en los sujetos_1 y temas_2. Aquí, los elementos de los sujetos_1 se combinan con todos y cada uno de los elementos en Subects_2.

Conclusión

En este tutorial de Pyspark RDD, vimos cómo realizar intersección () y Cartesian (). Necesitamos dos RDD para realizar estas operaciones.Intersection () Devuelve solo elementos comunes tanto del RDD como del cartesiano () Devuelve un producto cartesiano de modo que cada elemento en el primer RDD se combina con todos los elementos del segundo RDD en forma de par.