Pyspark Rdd - Subtrair, distinto

Pyspark Rdd - Subtrair, distinto
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 como uma estrutura de dados fundamental no Apache Spark. Ele armazenará os dados na forma de linhas e colunas como um DataFrame.

Precisamos importar RDD do Pyspark.Módulo RDD.

Em Pyspark, para criar dados ou um DataFrame, temos que usar o método parallelize ().

Sintaxe:

Spark_App.SparkContext.paralelize (dados)

Onde os dados podem ser um dados unidimensional (dados lineares) ou bidimensionais (dados da coluna de linha).

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

Pyspark Rdd - Subract ()

subtrair() No RDD, é semelhante à operação de diferença que retornará o novo RDD que inclui os elementos presentes no primeiro RDD, mas não presentes no segundo RDD.

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

Sintaxe:

Rdd_data1.subtraia (rdd_data2)

Onde:

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

Exemplo 1:

Neste exemplo, criaremos dois RDD com dados numéricos - sujeitos_1 e sujeitos_2 e executará Subract () 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 Subract () Operação acima de dois RDDs
Print ("Subtract () Operação em Subjects_1 com sujeitos_2:", sujeitos_1.subtrair (sujeitos_2).colet ()))
#Perform Subract () Operação acima de dois RDDs
Print ("Subtract () Operação em Subjects_2 com sujeitos_1:", sujeitos_2.subtrair (sujeitos_1).colet ()))

Saída:

sujeitos_1 rdd: [100, 34, 56, 54, 45]
sujeitos_2 rdd: [90, 89, 34, 56, 45]
Subtract () Operação em Subjects_1 com sujeitos_2: [100, 54]
Subtract () Operação no sujeito_2 com sujeitos_1: [89, 90]

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

Na primeira operação, estamos realizando subtração em assuntos_1 com sujeitos_2. Aqui 100 e 54 estão presentes em assuntos_1, mas não em assuntos_2. Então, eles foram devolvidos.

Na segunda operação, estamos realizando subtração em assuntos_2 com sujeitos_1. Aqui, 89 e 90 estão presentes em assuntos_2, mas não em sujeitos_1. Então, eles foram devolvidos.

Exemplo 2:

Neste exemplo, criaremos dois RDD com dados de string - sujeitos_1 e sujeitos_2 e executaremos Subtract () 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 Subract () Operação acima de dois RDDs
Print ("Subtract () Operação em Subjects_1 com sujeitos_2:", sujeitos_1.subtrair (sujeitos_2).colet ()))
#Perform Subract () Operação acima de dois RDDs
Print ("Subtract () Operação em Subjects_2 com sujeitos_1:", sujeitos_2.subtrair (sujeitos_1).colet ()))

Saída:

sujeitos_1 rdd: ['Linux', 'Bash', 'JavaScript']
sujeitos_2 rdd: ['linux', 'java']
Subtract () Operação em sujeitos_1 com sujeitos_2: ['Bash', 'JavaScript']
Subtract () Operação em sujeitos_2 com sujeitos_1: ['java']]

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

Na primeira operação, estamos realizando subtração em assuntos_1 com sujeitos_2. Aqui, 'Bash' e 'JavaScript' estão presentes em assuntos_1, mas não em assuntos_2. Então, eles foram devolvidos.

Na segunda operação, estamos realizando subtração em assuntos_2 com sujeitos_1. Aqui 'Java' está presente em assuntos_2, mas não em sujeitos_1. Então, é devolvido.

Pyspark Rdd - Distinto ()

distinto () No RDD, é usado para retornar apenas valores únicos de RDD. É aplicado em apenas um RDD

Então, precisamos de um RDD para executar esta operação. Não leva parâmetros.

Sintaxe:

Rdd_data.distinto ()

Onde, rdd_data1 é o primeiro RDD.

Exemplo 1:

Neste exemplo, criaremos um RDD sujeitos_1 com 10 valores numéricos e retornaremos valores exclusivos aplicando operação distinta ().

#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 10 - Marcas de assunto
sujeitos_1 = spark_app.SparkContext.paralelize ([34,56,54,45,45,56,54,4,3,3])
#display subjets_1 rdd
print ("sujeitos_1 rdd:", sujeitos_1.colet ()))
#Perform Distinct () Operação acima RDD.
Print ("Distinct () Operação em assuntos_1:", sujeitos_1.distinto ().colet ()))

Saída:

sujeitos_1 rdd: [34, 56, 54, 45, 45, 56, 54, 4, 3, 3]
Operação distinta () em assuntos_1: [34, 56, 54, 4, 45, 3]

Criamos um RDD com 10 valores inteiros que incluem duplicatas. Depois de solicitarmos distintos () para retornar apenas valores únicos.

Exemplo 2:

Neste exemplo, criaremos um RDD sujeitos_1 com 5 valores de string e retornaremos valores exclusivos aplicando a operação distinta ().

#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 ()
# Crie 5 - Assuntos
sujeitos_1 = spark_app.SparkContext.paralelize (['java', 'java', 'python', 'javascript', 'javascript']))
#display subjets_1 rdd
print ("sujeitos_1 rdd:", sujeitos_1.colet ()))
#Perform Distinct () Operação acima RDD.
Print ("Distinct () Operação em assuntos_1:", sujeitos_1.distinto ().colet ()))

Saída:

sujeitos_1 rdd: ['java', 'java', 'python', 'javascript', 'javascript']
Operação distinta () em assuntos_1: ['java', 'python', 'javascript']

Criamos um RDD com 5 valores de string que incluem duplicatas. Depois disso, aplicamos distintos () para retornar apenas valores únicos. Os valores únicos retornados são - Java, Python e JavaScript.

Conclusão

Neste tutorial Pyspark RDD, discutimos os métodos subtract () e distinct ().subtract () conforme aplicado em dois RDDs. É usado para retornar os elementos presentes no primeiro RDD, mas não presentes no segundo. Rdd.distinto () é aplicado em RDD único que é usado para retornar elementos exclusivos do RDD.