Pyspark RDD - Interseção, cartesiano

Pyspark RDD - Interseção, cartesiano
No Python, Pyspark é um módulo Spark usado para fornecer um tipo semelhante de processamento como o Spark usando o DataFrame.

RDD significa conjuntos de dados distribuídos resilientes. Podemos chamar RDD de estrutura de dados fundamental no Apache Spark. Ele armazenará os dados na forma de linhas e colunas semelhantes a um quadro de dados ou linearmente.

Precisamos importar RDD do Pyspark.Módulo RDD.

Portanto, no Pyspark para criar dados ou um dataframe, precisamos usar o método parallelize ().

Sintaxe:

Spark_App.SparkContext.paralelize (dados)

Onde,

Os dados podem ser um dimensional (dados lineares) ou bidimensional (dados da coluna de linha).

Neste tutorial, aprenderemos sobre o Pyspark Rdd Subract () e Distinct () Operations.

Pyspark RDD - Interseção ()

interseção() Em RDD retornará o novo RDD que inclui os elementos presentes no primeiro RDD, bem como o segundo RDD. Simplesmente, ele retorna apenas elementos comuns de ambos os RDD.

Então, precisamos de dois RDDs para executar esta operação.

Sintaxe:

Rdd_data1.Interseção (rdd_data2)

Onde,

  1. Rdd_data1 é o primeiro RDD.
  2. Rdd_data2 é o segundo RDD.

Exemplo 1:

Neste exemplo, criaremos dois RDDs com dados numéricos - sujeitos_1 e sujeitos_2 e executará a interseção () em dois RDDs.

#import o módulo Pyspark
Importar Pyspark
#Import SparkSession para criar uma sessão
de Pyspark.SQL Import SparkSession
# importar rdd do Pyspark.rdd
de Pyspark.RDD Import rdd
#Crie um aplicativo chamado Linuxhint
Spark_App = SparkSession.construtor.AppName ('Linuxhint').getorcreate ()
# Criar 5 - Marcas de assunto
sujeitos_1 = spark_app.SparkContext.paralelize ([100,34,56,54,45])
#display subjets_1 rdd
print ("sujeitos_1 rdd:", sujeitos_1.colet ()))
# Criar 5 - Marcas de assunto
sujeitos_2 = spark_app.SparkContext.paralelize ([90,89,34,56,45])
#display subjets_2 rdd
print ("sujeitos_2 rdd:", sujeitos_2.colet ()))
#Perform Intersection () Operação acima de dois RDDs
Print ("Operação Intesection () em Subject_1 e Subjects_2:", Subjects_1.interseção (sujeitos_2).colet ()))

Saída:

sujeitos_1 rdd: [100, 34, 56, 54, 45]
sujeitos_2 rdd: [90, 89, 34, 56, 45]
Operação de interseção () em assuntos_1 e sujeitos_2: [56, 45, 34]

Da saída, podemos ver que existem 5 elementos nos dois RDDs.

Estamos realizando uma interseção em assuntos_1 e sujeitos_2. Aqui 56,45 e 34 estão presentes em assuntos_1 e sujeitos_2. Então, eles foram devolvidos.

Exemplo 2:

Neste exemplo, criaremos dois RDD com strings - sujeitos_1 e sujeitos_2 e executaremos a interseção () em dois RDDs.

#import o módulo Pyspark
Importar Pyspark
#Import SparkSession para criar uma sessão
de Pyspark.SQL Import SparkSession
# importar rdd do Pyspark.rdd
de Pyspark.RDD Import rdd
#Crie um aplicativo chamado Linuxhint
Spark_App = SparkSession.construtor.AppName ('Linuxhint').getorcreate ()
# Criar 3 - Nomes de assuntos
sujeitos_1 = spark_app.SparkContext.paralelize (["Linux", "Bash", "JavaScript"]))
#display subjets_1 rdd
print ("sujeitos_1 rdd:", sujeitos_1.colet ()))
# Criar 2 - Nomes de assuntos
sujeitos_2 = spark_app.SparkContext.paralelize (["Linux", "Java"]))
#display subjets_2 rdd
print ("sujeitos_2 rdd:", sujeitos_2.colet ()))
#Perform Intersection () Operação acima de dois RDDs
Print ("Operação Intesection () em Subject_1 e Subjects_2:", Subjects_1.interseção (sujeitos_2).colet ()))

Saída:

sujeitos_1 rdd: ['Linux', 'Bash', 'JavaScript']
sujeitos_2 rdd: ['linux', 'java']
Operação de interseção () em assuntos_1 e sujeitos_2: ['Linux']

Da saída, podemos ver que apenas 'Linux' é comum nos dois RDDs. Então, é devolvido.

Pyspark Rdd - Cartesiano ()

cartesiano() No RDD, retornará o novo RDD que inclui todos os elementos dos dois RDDs. Ele retorna um produto cartesiano de modo que cada elemento no primeiro RDD seja combinado com todos os elementos do segundo RDD na forma de um par.

Então, precisamos de dois RDDs para executar esta operação.

Sintaxe:

Rdd_data1.cartesiano (rdd_data2)

Onde,

  1. Rdd_data1 é o primeiro RDD.
  2. Rdd_data2 é o segundo RDD.

Exemplo 1:

Neste exemplo, criaremos dois RDDs com dados numéricos - sujeitos_1 e sujeitos_2 e executaremos cartesian () em dois RDDs.

#import o módulo Pyspark
Importar Pyspark
#Import SparkSession para criar uma sessão
de Pyspark.SQL Import SparkSession
# importar rdd do Pyspark.rdd
de Pyspark.RDD Import rdd
#Crie um aplicativo chamado Linuxhint
Spark_App = SparkSession.construtor.AppName ('Linuxhint').getorcreate ()
# Criar 2 - Marcas de sujeito
sujeitos_1 = spark_app.SparkContext.paralelize ([100,34])
#display subjets_1 rdd
print ("sujeitos_1 rdd:", sujeitos_1.colet ()))
# Criar 2 - Marcas de sujeito
sujeitos_2 = spark_app.SparkContext.paralelize ([56,45])
#display subjets_2 rdd
print ("sujeitos_2 rdd:", sujeitos_2.colet ()))
#Perform Cartesian () Operação acima de dois RDDs
print ("Operação cartesiana () em assuntos_1 e sujeitos_2:", sujeitos_1.cartesiano (sujeitos_2).colet ()))

Saída:

sujeitos_1 rdd: [100, 34]
sujeitos_2 rdd: [56, 45]
Operação cartesiana () em assuntos_1 e sujeitos_2: [(100, 56), (100, 45), (34, 56), (34, 45)]

Da saída, podemos ver que existem 2 elementos nos dois RDDs.

Estamos realizando um cartesiano em assuntos_1 e sujeitos_2. Elementos de sujeitos_1 são emparelhados com todos os elementos em assuntos_2.

Exemplo 2:

Neste exemplo, criaremos dois RDD com strings - sujeitos_1 e sujeitos_2 e executaremos cartesiano () em dois RDDs.

#import o módulo Pyspark
Importar Pyspark
#Import SparkSession para criar uma sessão
de Pyspark.SQL Import SparkSession
# importar rdd do Pyspark.rdd
de Pyspark.RDD Import rdd
#Crie um aplicativo chamado Linuxhint
Spark_App = SparkSession.construtor.AppName ('Linuxhint').getorcreate ()
# Criar 3 - Nomes de assuntos
sujeitos_1 = spark_app.SparkContext.paralelize (["Linux", "Bash", "JavaScript"]))
#display subjets_1 rdd
print ("sujeitos_1 rdd:", sujeitos_1.colet ()))
# Criar 2 - Nomes de assuntos
sujeitos_2 = spark_app.SparkContext.paralelize (["Linux", "Java"]))
#display subjets_2 rdd
print ("sujeitos_2 rdd:", sujeitos_2.colet ()))
#Perform Cartesian () Operação acima de dois RDDs
print ("Operação cartesiana () em assuntos_1 e sujeitos_2:", sujeitos_1.cartesiano (sujeitos_2).colet ()))

Saída:

sujeitos_1 rdd: ['Linux', 'Bash', 'JavaScript']
sujeitos_2 rdd: ['linux', 'java']
Operação cartesiana () em assuntos_1 e sujeitos_2: [('Linux', 'Linux'), ('Linux', 'Java'), ('Bash', 'Linux'), ('JavaScript', 'Linux'), ('Bash', 'Java'), ('JavaScript', 'Java')]]

Da saída, podemos ver que existem 3 elementos no primeiro RDD e 2 elementos no segundo RDD.

Estamos realizando um cartesiano em assuntos_1 e sujeitos_2. Aqui, elementos de sujeitos_1 são emparelhados com cada elemento em Subects_2.

Conclusão

Neste tutorial Pyspark RDD, vimos como realizar a interseção () e cartesiano (). Precisamos de dois RDDs para executar essas operações.A interseção () retorna apenas elementos comuns do RDD e do cartesiano () retorna um produto cartesiano de modo que cada elemento no primeiro RDD seja combinado com todos os elementos do segundo RDD na forma de um par.