Converti Pyspark RDD in DataFrame

Converti Pyspark RDD in DataFrame
In Python, Pyspark è un modulo Spark utilizzato per fornire un tipo di elaborazione simile come Spark.

RDD sta per set di dati distribuiti resilienti. Possiamo chiamare RDD una struttura di dati fondamentali in Apache Spark.

Sintassi

Spark_app.SparkContext.parallelizza (dati)

Possiamo mettere in relazione i dati in un formato tabulare. La struttura dei dati utilizzata è il frame dati.Formato tabulare significa che memorizza i dati in righe e colonne.

In PysPark, possiamo creare un Frame Data dall'app Spark con il metodo createAtaFrame ().

Sintassi

Spark_app.creatotaframe (input_data, colonne)

Laddove input_data può essere un dizionario o un elenco per creare un telaio di dati da questi dati e se input_data è un elenco di dizionari, le colonne non sono necessarie. Se si tratta di un elenco nidificato, dobbiamo fornire i nomi delle colonne.

Ora, discutiamo di come convertire PysPark RDD in DataFrame.

Creazione di Pyspark RDD

In questo esempio, creeremo un RDD denominato e lo mostreremo usando l'azione da collezione ().

#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 dati studenteschi con 5 righe e 6 attributi
Studenti = Spark_app.SparkContext.parallelize (['rollno': '001', 'name': 'sravan', 'age': 23, 'altezza': 5.79, "peso": 67, "indirizzo": "guntur",
'rollno': '002', 'name': 'ojaswi', 'age': 16, 'altezza': 3.79, 'peso': 34, 'indirizzo': 'hyd',
'rollno': '003', 'name': 'gnanesh chowdary', 'age': 7, 'altezza': 2.79, 'peso': 17, 'indirizzo': 'patna',
'rollno': '004', 'name': 'rohith', 'age': 9, 'altezza': 3.69, 'peso': 28, 'indirizzo': 'hyd',
'rollno': '005', 'name': 'sridevi', 'age': 37, 'altezza': 5.59, 'peso': 54, 'indirizzo': 'hyd'])
#display the rdd usando collect ()
Stampa (studenti.raccogliere())

Produzione

['rollno': '001', 'name': 'sravan', 'age': 23, 'altezza': 5.79, "peso": 67, "indirizzo": "guntur",
'rollno': '002', 'name': 'ojaswi', 'age': 16, 'altezza': 3.79, 'peso': 34, 'indirizzo': 'hyd',
'rollno': '003', 'name': 'gnanesh chowdary', 'age': 7, 'altezza': 2.79, 'peso': 17, 'indirizzo': 'patna',
'rollno': '004', 'name': 'rohith', 'age': 9, 'altezza': 3.69, 'peso': 28, 'indirizzo': 'hyd',
'rollno': '005', 'name': 'sridevi', 'age': 37, 'altezza': 5.59, 'peso': 54, 'indirizzo': 'hyd']

Metodo 1: usando createAtaFrame ()

È possibile convertire RDD in dati di dati da un'app Spark con il metodo creatotaframe (). Qui dobbiamo passare RDD a questo metodo.

Sintassi

Spark_app.creatotaframe (input_rdd)

Dove input_rdd è il RDD.

Esempio
In questo esempio, stiamo convertendo gli studenti - RDD in dataframe utilizzando il metodo createtaFaframe ().

#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 dati studenteschi con 5 righe e 6 attributi
Studenti = Spark_app.SparkContext.parallelize (['rollno': '001', 'name': 'sravan', 'age': 23, 'altezza': 5.79, "peso": 67, "indirizzo": "guntur",
'rollno': '002', 'name': 'ojaswi', 'age': 16, 'altezza': 3.79, 'peso': 34, 'indirizzo': 'hyd',
'rollno': '003', 'name': 'gnanesh chowdary', 'age': 7, 'altezza': 2.79, 'peso': 17, 'indirizzo': 'patna',
'rollno': '004', 'name': 'rohith', 'age': 9, 'altezza': 3.69, 'peso': 28, 'indirizzo': 'hyd',
'rollno': '005', 'name': 'sridevi', 'age': 37, 'altezza': 5.59, 'peso': 54, 'indirizzo': 'hyd'])
#Cuck il tipo di studenti
stampa (tipo (studenti))
#Convert RDD su DataFrame
df = spark_app.CreatedataFrame (Students)
#display il frame dati
df.spettacolo()
#Cuck il tipo di DF
stampa (tipo (df))

Produzione

Dall'output di cui sopra, possiamo vedere che gli studenti sono un RDD (visualizzato utilizzando il tipo) e dopo aver convertito in dati di dati, abbiamo visualizzato il metodo DataFrame utilizzando Show () e per la conferma, abbiamo restituito il tipo di dati dati.

Metodo 2: utilizzando createAtaFrame () con schema

StructType ()
Questo metodo viene utilizzato per definire la struttura del frame dati pyspark. Accetterà un elenco di tipi di dati insieme ai nomi delle colonne per il determinato dati di dati. Questo è noto come lo schema del telaio. Memorizza una collezione di campi

StructField ()
Questo metodo viene utilizzato all'interno del metodo structType () del Frame dati Pyspark. Accetterà i nomi delle colonne con il tipo di dati.

Sintassi

schema = structType ([
Structfield ("colonna 1", tipo di dati, true/false),
Structfield ("colonna 2", tipo di dati, true/false),
.. ,
Structfield ("colonna n", tipo di dati, true/false)])

Dove lo schema si riferisce al frame dati quando viene creato.

Parametri

  1. StructType accetta un elenco di strumenti in un elenco separato da una virgola.
  2. Structfield () viene utilizzato per aggiungere colonne al frame dati, che prende i nomi delle colonne come primo parametro e il tipo di dati delle colonne particolari come secondo parametro.

Dobbiamo utilizzare i tipi di dati dai metodi importati dal Pyspark.SQL.modulo tipi.

I tipi di dati supportati sono:

  • StringType () - Utilizzato per archiviare i valori delle stringhe
  • Integertype () - Utilizzato per archiviare i valori interi o lunghi interi
  • Floattype () - Utilizzato per archiviare i valori galleggianti
  • DoubleType () - Utilizzato per archiviare i doppi valori
  1. Valori booleani come terzo parametro. Se è vero, verrà utilizzato il tipo di dati dato, altrimenti no quando è falso.

Dobbiamo passare questo schema al metodo DataFrame insieme ai dati.

Sintassi

CreatedAtaFrame (Data, Schema = Schema)

Sintassi

Spark_app.creatotaframe (input_rdd)

Dove, input_rdd è il RDD.

Esempio
In questo esempio, stiamo convertendo gli studenti - RDD in dataframe utilizzando il metodo createtaFrame () con i nomi delle colonne - rollno, nome, età, altezza, peso e indirizzo

#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
#e importanti tipi di strutture e tipi di dati
da pyspark.SQL.Tipi Import StrucTType, Structfield, StringType, IntegerType, Floattype
#Crea un'app chiamata LinuxHint
Spark_app = SparkSession.costruttore.appname ('LinuxHint').getOrCreate ()
# Crea dati studenteschi con 5 righe e 6 attributi
Studenti = Spark_app.SparkContext.parallelize (['rollno': '001', 'name': 'sravan', 'age': 23, 'altezza': 5.79, "peso": 67, "indirizzo": "guntur",
'rollno': '002', 'name': 'ojaswi', 'age': 16, 'altezza': 3.79, 'peso': 34, 'indirizzo': 'hyd',
'rollno': '003', 'name': 'gnanesh chowdary', 'age': 7, 'altezza': 2.79, 'peso': 17, 'indirizzo': 'patna',
'rollno': '004', 'name': 'rohith', 'age': 9, 'altezza': 3.69, 'peso': 28, 'indirizzo': 'hyd',
'rollno': '005', 'name': 'sridevi', 'age': 37, 'altezza': 5.59, 'peso': 54, 'indirizzo': 'hyd'])
#Cuck il tipo di studenti
stampa (tipo (studenti))
#Define The StructType e Structfields
#per i nomi di colonne di seguito
schema = structType ([
Structfield ("rollno", StringType (), true),
StructField ("Name", StringType (), True),
Structfield ("Age", IntegerType (), True),
Structfield ("altezza", floattype (), true),
Structfield ("peso", integertype (), true),
StructField ("indirizzo", StringType (), true)
])
#Convert RDD su DataFrame
df = spark_app.CreateAtaFrame (Studenti, Schema)
#display il frame dati
df.spettacolo()
#Cuck il tipo di DF
stampa (tipo (df))

Produzione

Dall'output di cui sopra, possiamo vedere che gli studenti sono un RDD (visualizzato utilizzando il tipo) e dopo aver convertito in dati di dati, abbiamo visualizzato il metodo DataFrame utilizzando Show () e per la conferma, abbiamo restituito il tipo di dati dati.

Metodo 3: usando ToDF ()

TODF () non prende alcun parametro e lo converte direttamente nel frame dati.

Sintassi

input_rdd.todf ()

Dove, input_rdd è il RDD.

Esempio
In questo esempio, stiamo convertendo gli studenti - RDD in data frame utilizzando il metodo ToDF ().

#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 dati studenteschi con 5 righe e 6 attributi
Studenti = Spark_app.SparkContext.parallelize (['rollno': '001', 'name': 'sravan', 'age': 23, 'altezza': 5.79, "peso": 67, "indirizzo": "guntur",
'rollno': '002', 'name': 'ojaswi', 'age': 16, 'altezza': 3.79, 'peso': 34, 'indirizzo': 'hyd',
'rollno': '003', 'name': 'gnanesh chowdary', 'age': 7, 'altezza': 2.79, 'peso': 17, 'indirizzo': 'patna',
'rollno': '004', 'name': 'rohith', 'age': 9, 'altezza': 3.69, 'peso': 28, 'indirizzo': 'hyd',
'rollno': '005', 'name': 'sridevi', 'age': 37, 'altezza': 5.59, 'peso': 54, 'indirizzo': 'hyd'])
#Cuck il tipo di studenti
stampa (tipo (studenti))
#Convert RDD su DataFrame
df = studenti.todf ()
#display il frame dati
df.spettacolo()
#Cuck il tipo di DF
stampa (tipo (df))

Produzione

Dall'output di cui sopra, possiamo vedere che gli studenti sono un RDD (visualizzato utilizzando il tipo) e dopo aver convertito in dati di dati, abbiamo visualizzato il metodo DataFrame utilizzando Show () e per la conferma, abbiamo restituito il tipo di dati dati.

Conclusione

In questo tutorial Pyspark, abbiamo visto come convertire Pyspark RDD in PysPark DataFrame utilizzando i metodi creatitaFaframe () e TODF (). Se si desidera fornire esplicitamente i nomi delle colonne, è possibile utilizzare il secondo metodo in questo tutorial.