In Python, Pyspark è un modulo Spark utilizzato per fornire un tipo di elaborazione simile come Spark utilizzando DataFrame. In pyspark,
filtro() viene utilizzato per filtrare le righe nel frame dati. Restituirà il nuovo frame dati filtrando le righe nel frame dati esistente. Dimostreremo quattro modi per usare il
filtro() funzione in questo articolo:
- Metodo - 1: filtro () con operatori relazionali
- Metodo - 2: filtro () con operatori relazionali usando la funzione col
- Metodo - 3: filtro () con operatori relazionali a più condizioni
- Metodo - 4: filtro () con espressione SQL
Creiamo innanzitutto un frame dati pyspark che possiamo usare per gli esempi.
Esempio:
In questo esempio, creeremo il Frame dati PysPark con 5 righe e 6 colonne e visualizzano il metodo show ().
#import il modulo pyspark
importare pyspark
#IMPORT SPARKSESSION per la creazione di una sessione
da pyspark.SQL Importazione di importazione
#importa la funzione Col
da pyspark.SQL.Funzioni importanti col
#Crea un'app chiamata LinuxHint
Spark_app = SparkSession.costruttore.appname ('LinuxHint').getOrCreate ()
# Crea dati studenteschi con 5 righe e 6 attributi
Studenti = [
'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']
# Crea il frame dati
df = spark_app.CreatedataFrame (Students)
#Display DataFrame
df.spettacolo()
Produzione:
Metodo - 1: filtro () con operatori relazionali
Qui, stiamo utilizzando la funzione Filter () per filtrare il frame dati PysPark con operatori relazionali come>, < . == etc.
Sintassi:
DataFrame.Filtro (DataFrame.Valore operatore colonnario_name)
Qui, Filter () accetta tre parametri.
- DataFrame.Column_name è la colonna in cui viene applicato il filtro.
- L'operatore è l'operatore relazionale.
- Il valore è il valore stringa/numerico rispetto ai valori della colonna.
Esempio:
In questo esempio, filtreremo il telaio di dati in base a colonne di età, altezza, peso e nome con diversi operatori relazionali e visualizzare le righe filtrate utilizzando il metodo collect ().
#import il modulo pyspark
importare pyspark
#IMPORT SPARKSESSION per la creazione di una sessione
da pyspark.SQL Importazione di importazione
#importa la funzione Col
da pyspark.SQL.Funzioni importanti col
#Crea un'app chiamata LinuxHint
Spark_app = SparkSession.costruttore.appname ('LinuxHint').getOrCreate ()
# Crea dati studenteschi con 5 righe e 6 attributi
Studenti = [
'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']
# Crea il frame dati
df = spark_app.CreatedataFrame (Students)
#Display DataFrame
#by filtraggio di età come 23
Stampa (df.filtro (df.età == 23).raccogliere())
stampa("---------------------------")
#Display DataFrame
#By Filtering Altreping come 2.79
Stampa (df.filtro (df.altezza == 2.79).raccogliere())
stampa("---------------------------")
#Display DataFrame
#per filtrare il peso maggiore di 30
Stampa (df.filtro (df.Peso> 30).raccogliere())
stampa("---------------------------")
#Display DataFrame
#By Filtering Name come Sravan
Stampa (df.filtro (df.name == 'sravan').raccogliere())
Produzione:
[Riga (indirizzo = 'guntur', età = 23, altezza = 5.79, name = "sravan", rollno = "001", peso = 67)]
---------------------------
[Riga (indirizzo = 'patna', età = 7, altezza = 2.79, name = "gnanesh chowdary", rollno = "003", peso = 17)]
---------------------------
[Riga (indirizzo = 'guntur', età = 23, altezza = 5.79, name = "sravan", rollno = "001", peso = 67), riga (indirizzo = 'hyd', età = 16, altezza = 3.79, name = "ojaswi", rollno = "002", peso = 34), riga (indirizzo = 'hyd', età = 37, altezza = 5.59, name = "sridevi", rollno = "005", peso = 54)]
---------------------------
[Riga (indirizzo = 'guntur', età = 23, altezza = 5.79, name = "sravan", rollno = "001", peso = 67)]
Metodo - 2: filtro () con operatori relazionali usando la funzione col
Qui, stiamo utilizzando la funzione Filter () per filtrare il frame dati PysPark con operatori relazionali come>, < . == etc. through col function.
Sintassi:
DataFrame.Filtro (Col ("column_name") Valore dell'operatore)
Qui, dove () accetta tre parametri.
- DataFrame.Column_name è la colonna in cui viene applicato il filtro.
- L'operatore è l'operatore relazionale.
- Il valore è il valore stringa/numerico rispetto ai valori della colonna.
Esempio:
In questo esempio, filtreremo il telaio di dati in base a colonne di età, altezza, peso e nome con diversi operatori relazionali e visualizzare le righe filtrate utilizzando il metodo collect ().
#import il modulo pyspark
importare pyspark
#IMPORT SPARKSESSION per la creazione di una sessione
da pyspark.SQL Importazione di importazione
#importa la funzione Col
da pyspark.SQL.Funzioni importanti col
#Crea un'app chiamata LinuxHint
Spark_app = SparkSession.costruttore.appname ('LinuxHint').getOrCreate ()
# Crea dati studenteschi con 5 righe e 6 attributi
Studenti = [
'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']
# Crea il frame dati
df = spark_app.CreatedataFrame (Students)
#Display DataFrame
#by filtraggio di età come 23
Stampa (df.filtro (col ('age') == 23).raccogliere())
stampa("---------------------------")
#Display DataFrame
#By Filtering Altreping come 2.79
Stampa (df.filtro (col ('altezza') == 2.79).raccogliere())
stampa("---------------------------")
#Display DataFrame
#per filtrare il peso maggiore di 30
Stampa (df.filtro (col ('peso')> 30).raccogliere())
stampa("---------------------------")
#Display DataFrame
#By Filtering Name come Sravan
Stampa (df.filtro (col ('name') == 'sravan').raccogliere())
Produzione:
[Riga (indirizzo = 'guntur', età = 23, altezza = 5.79, name = "sravan", rollno = "001", peso = 67)]
---------------------------
[Riga (indirizzo = 'patna', età = 7, altezza = 2.79, name = "gnanesh chowdary", rollno = "003", peso = 17)]
---------------------------
[Riga (indirizzo = 'guntur', età = 23, altezza = 5.79, name = "sravan", rollno = "001", peso = 67), riga (indirizzo = 'hyd', età = 16, altezza = 3.79, name = "ojaswi", rollno = "002", peso = 34), riga (indirizzo = 'hyd', età = 37, altezza = 5.59, name = "sridevi", rollno = "005", peso = 54)]
---------------------------
[Riga (indirizzo = 'guntur', età = 23, altezza = 5.79, name = "sravan", rollno = "001", peso = 67)]
Metodo - 3: filtro () con operatori relazionali a più condizioni
Qui, stiamo utilizzando la funzione Filter () per filtrare il frame dati PysPark con operatori relazionali come>, < . == etc with multiple conditions.
Sintassi:
DataFrame.Filtro (Conditin1) Operatore (Condizione2) .. .)
Qui, Filter () accetta tre parametri.
- DataFrame.Column_name è la colonna in cui viene applicato il filtro.
- L'operatore è l'operatore relazionale.
- Il valore è il valore stringa/numerico rispetto ai valori della colonna.
- la condizione specifica - (DataFrame.Valore operatore colonnario_name).
Esempio:
In questo esempio, filtreremo il frame dati in base alla colonna di età con OR (|) e (&) operatore e visualizzeremo le righe filtrate utilizzando il metodo collection ().
#import il modulo pyspark
importare pyspark
#IMPORT SPARKSESSION per la creazione di una sessione
da pyspark.SQL Importazione di importazione
#importa la funzione Col
da pyspark.SQL.Funzioni importanti col
#Crea un'app chiamata LinuxHint
Spark_app = SparkSession.costruttore.appname ('LinuxHint').getOrCreate ()
# Crea dati studenteschi con 5 righe e 6 attributi
Studenti = [
'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']
# Crea il frame dati
df = spark_app.CreatedataFrame (Students)
#Display DataFrame
#By Filtering Età superiore a 10 e meno di 21
Stampa (df.filtro ((df.età> 10) e (df.età <21)).collect())
stampa("---------------------------")
#Display DataFrame
#By Filtering Età superiore a 10 o meno di 21
Stampa (df.filtro ((df.età> 10) | (df.età <21)).collect())
Produzione:
[Riga (indirizzo = 'hyd', età = 16, altezza = 3.79, name = "ojaswi", rollno = "002", peso = 34)]
---------------------------
[Riga (indirizzo = 'guntur', età = 23, altezza = 5.79, name = "sravan", rollno = "001", peso = 67), riga (indirizzo = 'hyd', età = 16, altezza = 3.79, name = "ojaswi", rollno = "002", peso = 34), riga (indirizzo = 'patna', età = 7, altezza = 2.79, name = "gnanesh chowdary", rollno = "003", peso = 17), riga (indirizzo = 'hyd', età = 9, altezza = 3.69, name = "rohith", rollno = "004", peso = 28), riga (indirizzo = 'hyd', età = 37, altezza = 5.59, name = "sridevi", rollno = "005", peso = 54)]
Metodo - 4: filtro () con espressione SQL
Qui, stiamo usando la funzione Filter () per filtrare il Frame dati PysPark con espressione SQL. La condizione è racchiusa da "". Tuttavia, possiamo specificare l'operatore relazionale come condizione.
Sintassi:
DataFrame.filtro ("DataFrame.Valore operatore colonnario_name ”)
Qui, Filter () accetta tre parametri.
- DataFrame.Column_name è la colonna in cui viene applicato il filtro.
- L'operatore è l'operatore relazionale.
- Il valore è il valore stringa/numerico rispetto ai valori della colonna.
Esempio:
In questo esempio, filtreremo il telaio di dati in base a colonne di età, altezza, peso e nome con diversi operatori relazionali e visualizzare le righe filtrate utilizzando il metodo collect ().
#import il modulo pyspark
importare pyspark
#IMPORT SPARKSESSION per la creazione di una sessione
da pyspark.SQL Importazione di importazione
#importa la funzione Col
da pyspark.SQL.Funzioni importanti col
#Crea un'app chiamata LinuxHint
Spark_app = SparkSession.costruttore.appname ('LinuxHint').getOrCreate ()
# Crea dati studenteschi con 5 righe e 6 attributi
Studenti = [
'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']
# Crea il frame dati
df = spark_app.CreatedataFrame (Students)
#Display DataFrame
#by filtraggio di età come 23
#Utilizzo dell'espressione SQL
Stampa (df.Filtro ("Age == 23").raccogliere())
stampa("---------------------------")
#Display DataFrame
#By Filtering Altreping come 2.79
#Utilizzo dell'espressione SQL
Stampa (df.filtro ("altezza == 2.79 ").raccogliere())
stampa("---------------------------")
#Display DataFrame
#per filtrare il peso maggiore di 30
#Utilizzo dell'espressione SQL
Stampa (df.filtro ("peso> 30").raccogliere())
stampa("---------------------------")
#Display DataFrame
#By Filtering Name come Sravan
#Utilizzo dell'espressione SQL
Stampa (df.filtro ("name == 'sravan'").raccogliere())
Produzione:
[Riga (indirizzo = 'guntur', età = 23, altezza = 5.79, name = "sravan", rollno = "001", peso = 67)]
---------------------------
[Riga (indirizzo = 'patna', età = 7, altezza = 2.79, name = "gnanesh chowdary", rollno = "003", peso = 17)]
---------------------------
[Riga (indirizzo = 'guntur', età = 23, altezza = 5.79, name = "sravan", rollno = "001", peso = 67), riga (indirizzo = 'hyd', età = 16, altezza = 3.79, name = "ojaswi", rollno = "002", peso = 34), riga (indirizzo = 'hyd', età = 37, altezza = 5.59, name = "sridevi", rollno = "005", peso = 54)]
---------------------------
[Riga (indirizzo = 'guntur', età = 23, altezza = 5.79, name = "sravan", rollno = "001", peso = 67)]
Metodo - 4: filtro () con metodi di stringa
Qui, stiamo utilizzando la funzione Filter () per filtrare il Frame dati PysPark con metodi String. Questi sono applicati sulle colonne il cui tipo di dati è stringa. Sono:
inizia con() - Controlla il carattere iniziale nei dati forniti
Sintassi:
DataFrame.Filtro (DataFrame.column_name.startWith ("personaggio")
Qui column_name è la colonna in cui viene applicata il filtro in cui il valore inizia con il carattere dato.
finisce con() - Controlla il carattere finale nei dati forniti.
Sintassi:
DataFrame.Filtro (DataFrame.column_name.endswith ("personaggio")
Qui column_name è la colonna in cui viene applicata il filtro in cui il valore termina con il carattere dato.
contiene () - Controllare che il carattere contiene nei dati dati.
Sintassi:
DataFrame.Filtro (DataFrame.column_name.contiene ("carattere")
Qui column_name è la colonna in cui viene applicata il filtro in cui il valore contiene con il carattere dato.
Esempio:
In questo esempio, filtreremo in base alla colonna dell'indirizzo.
#import il modulo pyspark
importare pyspark
#IMPORT SPARKSESSION per la creazione di una sessione
da pyspark.SQL Importazione di importazione
#importa la funzione Col
da pyspark.SQL.Funzioni importanti col
#Crea un'app chiamata LinuxHint
Spark_app = SparkSession.costruttore.appname ('LinuxHint').getOrCreate ()
# Crea dati studenteschi con 5 righe e 6 attributi
Studenti = [
'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']
# Crea il frame dati
df = spark_app.CreatedataFrame (Students)
#Display DataFrame
#BY FILTERING INDIRIZZO
#start con 'h'
Stampa (df.filtro (df.indirizzo.startWith ("H")).raccogliere())
stampa("-----------------")
#Display DataFrame
#BY FILTERING INDIRIZZO
#ends con 'r'
Stampa (df.filtro (df.indirizzo.endswith ("r")).raccogliere())
stampa("-----------------")
#Display DataFrame
#BY FILTERING INDIRIZZO
#comnintas 'tu'
Stampa (df.filtro (df.indirizzo.contiene ("r")).raccogliere())
Produzione:
[Riga (indirizzo = 'hyd', età = 16, altezza = 3.79, name = "ojaswi", rollno = "002", peso = 34), riga (indirizzo = 'hyd', età = 9, altezza = 3.69, name = "rohith", rollno = "004", peso = 28), riga (indirizzo = 'hyd', età = 37, altezza = 5.59, name = "sridevi", rollno = "005", peso = 54)]
-----------------
[Riga (indirizzo = 'guntur', età = 23, altezza = 5.79, name = "sravan", rollno = "001", peso = 67)]
-----------------
[Riga (indirizzo = 'guntur', età = 23, altezza = 5.79, name = "sravan", rollno = "001", peso = 67)]
Conclusione
In questo articolo, abbiamo discusso di come utilizzare una funzione Filter () con diversi metodi sul Frame dati Pyspark in Python. E abbiamo incluso tutte le condizioni anche con le espressioni SQL.