In Python, Pyspark è un modulo Spark utilizzato per fornire un tipo di elaborazione simile come Spark utilizzando DataFrame.
RDD sta per set di dati distribuiti resilienti. Possiamo chiamare RDD una struttura di dati fondamentali in Apache Spark. Memorizzerà i dati sotto forma di righe e colonne simili a un telaio di dati o linearmente.
Dobbiamo importare RDD dal pyspark.Modulo RDD.
Quindi in PysPark per creare dati o un frame dati, dobbiamo utilizzare il metodo parallelize ().
Sintassi:
Spark_app.SparkContext.parallelizza (dati)
Dove,
I dati possono essere un monodimensionale (dati lineari) o bidimensionali (dati di riga-colonna).
In questo tutorial, impareremo informazioni su Pyspark RDD sottract () e distinte ().
PysPark RDD - intersection ()
intersezione() In RDD restituirà il nuovo RDD che include gli elementi presenti nel primo RDD e nel secondo RDD. Semplicemente, restituisce solo elementi comuni da entrambi i RDD.
Quindi, abbiamo bisogno di due RDD per eseguire questa operazione.
Sintassi:
Rdd_data1.intersezione (rdd_data2)
Dove,
- Rdd_data1 è il primo RDD.
- RDD_DATA2 è il secondo RDD.
Esempio 1:
In questo esempio, creeremo due RDD con dati numerici - soggetti_1 e soggetti_2 ed eseguiremo l'intersezione () su due RDD.
#import il modulo pyspark
importare pyspark
#IMPORT SPARKSESSION per la creazione di una sessione
da pyspark.SQL Importazione di importazione
# Importa RDD da Pyspark.rdd
da pyspark.RDD Import RDD
#Crea un'app chiamata LinuxHint
Spark_app = SparkSession.costruttore.appname ('LinuxHint').getOrCreate ()
# Crea 5 - segni di soggetto
soggetti_1 = spark_app.SparkContext.parallelize ([100,34,56,54,45])
#Display Subjets_1 RDD
print ("soggetti_1 rdd:", soggetti_1.raccogliere())
# Crea 5 - segni di soggetto
soggetti_2 = spark_app.SparkContext.parallelize ([90,89,34,56,45])
#Display Subjets_2 RDD
print ("soggetti_2 rdd:", soggetti_2.raccogliere())
#Perform Intersection () Operazione su due RDD
operazione di stampa ("intersection () su soggetti_1 e soggetti_2:", soggetti_1.intersezione (soggetti_2).raccogliere())
Produzione:
Soggeti_1 RDD: [100, 34, 56, 54, 45]
Soggeti_2 RDD: [90, 89, 34, 56, 45]
Operazione intersection () su soggetti_1 e soggetti_2: [56, 45, 34]
Dall'output, possiamo vedere che ci sono 5 elementi in entrambi i RDD.
Stiamo eseguendo un incrocio su soggetti_1 e soggetti_2. Qui 56,45 e 34 sono presenti in soggetti_1 e soggetti_2. Quindi, sono stati restituiti.
Esempio 2:
In questo esempio, creeremo due RDD con stringhe - soggetti_1 e soggetti_2 ed eseguiremo l'intersezione () su due RDD.
#import il modulo pyspark
importare pyspark
#IMPORT SPARKSESSION per la creazione di una sessione
da pyspark.SQL Importazione di importazione
# Importa RDD da Pyspark.rdd
da pyspark.RDD Import RDD
#Crea un'app chiamata LinuxHint
Spark_app = SparkSession.costruttore.appname ('LinuxHint').getOrCreate ()
# Crea 3 - Nomi degli argomenti
soggetti_1 = spark_app.SparkContext.Parallelize (["Linux", "Bash", "JavaScript"])
#Display Subjets_1 RDD
print ("soggetti_1 rdd:", soggetti_1.raccogliere())
# Crea 2 - Nomi dei soggetti
soggetti_2 = spark_app.SparkContext.parallelize (["linux", "java"])
#Display Subjets_2 RDD
print ("soggetti_2 rdd:", soggetti_2.raccogliere())
#Perform Intersection () Operazione su due RDD
operazione di stampa ("intersection () su soggetti_1 e soggetti_2:", soggetti_1.intersezione (soggetti_2).raccogliere())
Produzione:
soggetti_1 rdd: ['linux', 'bash', 'javascript']
soggetti_2 rdd: ['linux', 'java']
Operazione intersection () su soggetti_1 e soggetti_2: ['Linux']
Dall'output, possiamo vedere che solo "Linux" è comune in entrambi i RDD. Quindi, viene restituito.
PysPark RDD - cartesiano ()
cartesiano() In RDD restituirà il nuovo RDD che include tutti gli elementi di entrambi i RDD. Restituisce un prodotto cartesiano in modo tale che ogni elemento nel primo RDD sia combinato con tutti gli elementi del secondo RDD sotto forma di una coppia.
Quindi, abbiamo bisogno di due RDD per eseguire questa operazione.
Sintassi:
Rdd_data1.Cartesian (RDD_DATA2)
Dove,
- Rdd_data1 è il primo RDD.
- RDD_DATA2 è il secondo RDD.
Esempio 1:
In questo esempio, creeremo due RDD con dati numerici - soggetti_1 e soggetti_2 ed eseguiremo cartesiani () su due RDD.
#import il modulo pyspark
importare pyspark
#IMPORT SPARKSESSION per la creazione di una sessione
da pyspark.SQL Importazione di importazione
# Importa RDD da Pyspark.rdd
da pyspark.RDD Import RDD
#Crea un'app chiamata LinuxHint
Spark_app = SparkSession.costruttore.appname ('LinuxHint').getOrCreate ()
# Crea 2 - segni di soggetto
soggetti_1 = spark_app.SparkContext.parallelize ([100,34])
#Display Subjets_1 RDD
print ("soggetti_1 rdd:", soggetti_1.raccogliere())
# Crea 2 - segni di soggetto
soggetti_2 = spark_app.SparkContext.parallelize ([56,45])
#Display Subjets_2 RDD
print ("soggetti_2 rdd:", soggetti_2.raccogliere())
#Perform Cartesian () Operazione su due RDD
Print ("Cartesian () Operazione su soggetti_1 e soggetti_2:", soggetti_1.Cartesian (soggetti_2).raccogliere())
Produzione:
soggetti_1 RDD: [100, 34]
soggetti_2 rdd: [56, 45]
Operazione cartesiana () su soggetti_1 e soggetti_2: [(100, 56), (100, 45), (34, 56), (34, 45)]
Dall'output, possiamo vedere che ci sono 2 elementi in entrambi i RDD.
Stiamo eseguendo una cartesia su soggetti_1 e soggetti_2. Gli elementi da soggetti_1 sono abbinati a ogni elemento in soggetti_2.
Esempio 2:
In questo esempio, creeremo due RDD con stringhe - soggetti_1 e soggetti_2 ed eseguire cartesiano () su due RDD.
#import il modulo pyspark
importare pyspark
#IMPORT SPARKSESSION per la creazione di una sessione
da pyspark.SQL Importazione di importazione
# Importa RDD da Pyspark.rdd
da pyspark.RDD Import RDD
#Crea un'app chiamata LinuxHint
Spark_app = SparkSession.costruttore.appname ('LinuxHint').getOrCreate ()
# Crea 3 - Nomi degli argomenti
soggetti_1 = spark_app.SparkContext.Parallelize (["Linux", "Bash", "JavaScript"])
#Display Subjets_1 RDD
print ("soggetti_1 rdd:", soggetti_1.raccogliere())
# Crea 2 - Nomi dei soggetti
soggetti_2 = spark_app.SparkContext.parallelize (["linux", "java"])
#Display Subjets_2 RDD
print ("soggetti_2 rdd:", soggetti_2.raccogliere())
#Perform Cartesian () Operazione su due RDD
Print ("Cartesian () Operazione su soggetti_1 e soggetti_2:", soggetti_1.Cartesian (soggetti_2).raccogliere())
Produzione:
soggetti_1 rdd: ['linux', 'bash', 'javascript']
soggetti_2 rdd: ['linux', 'java']
Operazione Cartesian () su soggetti_1 e soggetti_2: [("linux", "linux"), ("linux", "java"), ("bash", "linux"), ("javascript", "linux"), ('Bash', 'Java'), ('JavaScript', 'Java')]
Dall'output, possiamo vedere che ci sono 3 elementi nei primi RDD e 2 elementi nel secondo RDD.
Stiamo eseguendo una cartesia su soggetti_1 e soggetti_2. Qui, gli elementi da soggetti_1 sono abbinati a ogni elemento in subects_2.
Conclusione
In questo tutorial RDD Pyspark, abbiamo visto come eseguire l'intersezione () e cartesiano (). Abbiamo bisogno di due RDD per eseguire queste operazioni.intersezione () restituisce solo elementi comuni sia da RDD che cartesiana () restituisce un prodotto cartesiano in modo tale che ogni elemento nel primo RDD sia combinato con tutti gli elementi del secondo RDD sotto forma di una coppia.