Pyspark onde cláusula

Pyspark onde cláusula
No Python, Pyspark é um módulo Spark usado para fornecer um tipo semelhante de processamento como o Spark usando o DataFrame. Em Pyspark, onde () é usado para filtrar as linhas no quadro de dados, ele retornará o novo DataFrame filtrando as linhas no quadro de dados existente.
  1. Método - 1: onde () com operadores relacionais
  2. Método - 2: onde () com operadores relacionais usando a função col
  3. Método - 3: onde () com operadores relacionais em várias condições
  4. Método - 4: onde () com expressão SQL
  5. Método - 5: onde () com métodos de string

Vamos criar um pyspark dataframe:

Exemplo:

Este exemplo criará o Pyspark DataFrame com 5 linhas e 6 colunas e exibirá -as usando o método show ().

#import o módulo PysPaprk
Importar Pyspark
#Import SparkSession para criar uma sessão
de Pyspark.SQL Import SparkSession
#import a função col
de Pyspark.SQL.funções Importar col
#Crie um aplicativo chamado Linuxhint
Spark_App = SparkSession.construtor.AppName ('Linuxhint').getorcreate ()
# Crie dados dos alunos com 5 linhas e 6 atributos
alunos = [
'rollno': '001', 'nome': 'sravan', 'idade': 23,
'Altura': 5.79, 'Peso': 67, 'Endereço': 'Guntur',
'rollno': '002', 'nome': 'ojaswi', 'idade': 16,
'Altura': 3.79, 'Peso': 34, 'Endereço': 'Hyd',
'rollno': '003', 'nome': 'gnanesh chowdary', 'idade': 7,
'Altura': 2.79, 'Peso': 17, 'Endereço': 'Patna',
'rollno': '004', 'nome': 'rohith', 'idade': 9,
'Altura': 3.69, 'Peso': 28, 'Endereço': 'Hyd',
'rollno': '005', 'nome': 'sridevi', 'idade': 37,
'Altura': 5.59, 'Peso': 54, 'Endereço': 'Hyd']
# Crie o DataFrame
df = spark_app.CreatedAtAframe (estudantes)
#display dataframe
df.mostrar()

Saída:

Método - 1: onde () com operadores relacionais

Aqui, estamos usando onde () função para filtrar o quadro de dados do Pyspark com operadores relacionais como>, < . == etc.

Sintaxe:

Quadro de dados.onde (dataframe.Valor do operador column_name)

Aqui, onde () aceita três parâmetros.

  1. quadro de dados.Column_name é a coluna onde a filtragem é aplicada
  2. Operador é o operador relacional
  3. O valor é o valor da string/numérico em comparação com os valores da coluna

Exemplo:

Neste exemplo, filtraremos o quadro de dados com base em colunas de idade, altura, peso e nomes com diferentes operadores relacionais e exibirá as linhas filtradas usando o método collect ().

#import o módulo PysPaprk
Importar Pyspark
#Import SparkSession para criar uma sessão
de Pyspark.SQL Import SparkSession
#import a função col
de Pyspark.SQL.funções Importar col
#Crie um aplicativo chamado Linuxhint
Spark_App = SparkSession.construtor.AppName ('Linuxhint').getorcreate ()
# Crie dados dos alunos com 5 linhas e 6 atributos
alunos = [
'rollno': '001', 'nome': 'sravan', 'idade': 23,
'Altura': 5.79, 'Peso': 67, 'Endereço': 'Guntur',
'rollno': '002', 'nome': 'ojaswi', 'idade': 16,
'Altura': 3.79, 'Peso': 34, 'Endereço': 'Hyd',
'rollno': '003', 'nome': 'gnanesh chowdary', 'idade': 7,
'Altura': 2.79, 'Peso': 17, 'Endereço': 'Patna',
'rollno': '004', 'nome': 'rohith', 'idade': 9,
'Altura': 3.69, 'Peso': 28, 'Endereço': 'Hyd',
'rollno': '005', 'nome': 'sridevi', 'idade': 37,
'Altura': 5.59, 'Peso': 54, 'Endereço': 'Hyd']
# Crie o DataFrame
df = spark_app.CreatedAtAframe (estudantes)
#display dataframe
#pela idade de filtragem como 23
Imprimir (df.onde (df.idade == 23).colet ()))
imprimir("---------------------------")
#display dataframe
#por altura de filtragem como 2.79
Imprimir (df.onde (df.altura == 2.79).colet ()))
imprimir("---------------------------")
#display dataframe
#por peso de filtragem maior que 30
Imprimir (df.onde (df.peso> 30).colet ()))
imprimir("---------------------------")
#display dataframe
#by filtrando nome como sravan
Imprimir (df.onde (df.nome == 'sravan').colet ()))

Saída:

[Linha (endereço = 'guntur', idade = 23, altura = 5.79, nome = 'sravan', rollno = '001', peso = 67)]
---------------------------
[Linha (endereço = 'patna', idade = 7, altura = 2.79, nome = 'Gnanesh Chowdary', rollno = '003', peso = 17)]
---------------------------
[Linha (endereço = 'guntur', idade = 23, altura = 5.79, nome = 'sravan', rollno = '001', peso = 67), linha (endereço = 'hyd', idade = 16, altura = 3.79, nome = 'ojaswi', rollno = '002', peso = 34), linha (endereço = 'hyd', idade = 37, altura = 5.59, nome = 'sridevi', rollno = '005', peso = 54)]
---------------------------
[Linha (endereço = 'guntur', idade = 23, altura = 5.79, nome = 'sravan', rollno = '001', peso = 67)]

Método - 2: onde () com operadores relacionais usando a função col

Aqui, estamos usando onde () função para filtrar o quadro de dados do Pyspark com operadores relacionais como>, < . == etc. through col function

Sintaxe:

Quadro de dados.onde (col (“column_name”) valor do operador)

Aqui, onde () aceita três parâmetros.

  1. quadro de dados.Column_name é a coluna onde a filtragem é aplicada
  2. Operador é o operador relacional
  3. O valor é o valor da string/numérico em comparação com os valores da coluna

Exemplo:

Neste exemplo, filtraremos o quadro de dados com base em colunas de idade, altura, peso e nomes com diferentes operadores relacionais e exibirá as linhas filtradas usando o método collect ().

#import o módulo PysPaprk
Importar Pyspark
#Import SparkSession para criar uma sessão
de Pyspark.SQL Import SparkSession
#import a função col
de Pyspark.SQL.funções Importar col
#Crie um aplicativo chamado Linuxhint
Spark_App = SparkSession.construtor.AppName ('Linuxhint').getorcreate ()
# Crie dados dos alunos com 5 linhas e 6 atributos
alunos = [
'rollno': '001', 'nome': 'sravan', 'idade': 23,
'Altura': 5.79, 'Peso': 67, 'Endereço': 'Guntur',
'rollno': '002', 'nome': 'ojaswi', 'idade': 16,
'Altura': 3.79, 'Peso': 34, 'Endereço': 'Hyd',
'rollno': '003', 'nome': 'gnanesh chowdary', 'idade': 7,
'Altura': 2.79, 'Peso': 17, 'Endereço': 'Patna',
'rollno': '004', 'nome': 'rohith', 'idade': 9,
'Altura': 3.69, 'Peso': 28, 'Endereço': 'Hyd',
'rollno': '005', 'nome': 'sridevi', 'idade': 37,
'Altura': 5.59, 'Peso': 54, 'Endereço': 'Hyd']
# Crie o DataFrame
df = spark_app.CreatedAtAframe (estudantes)
#display dataframe
#pela idade de filtragem como 23
Imprimir (df.onde (col ('idade') == 23).colet ()))
imprimir("---------------------------")
#display dataframe
#por altura de filtragem como 2.79
Imprimir (df.onde (col ('altura') == 2.79).colet ()))
imprimir("---------------------------")
#display dataframe
#por peso de filtragem maior que 30
Imprimir (df.onde (col ('peso')> 30).colet ()))
imprimir("---------------------------")
#display dataframe
#by filtrando nome como sravan
Imprimir (df.onde (col ('nome') == 'sravan').colet ()))

Saída:

[Linha (endereço = 'guntur', idade = 23, altura = 5.79, nome = 'sravan', rollno = '001', peso = 67)]
---------------------------
[Linha (endereço = 'patna', idade = 7, altura = 2.79, nome = 'Gnanesh Chowdary', rollno = '003', peso = 17)]
---------------------------
[Linha (endereço = 'guntur', idade = 23, altura = 5.79, nome = 'sravan', rollno = '001', peso = 67), linha (endereço = 'hyd', idade = 16, altura = 3.79, nome = 'ojaswi', rollno = '002', peso = 34), linha (endereço = 'hyd', idade = 37, altura = 5.59, nome = 'sridevi', rollno = '005', peso = 54)]
---------------------------
[Linha (endereço = 'guntur', idade = 23, altura = 5.79, nome = 'sravan', rollno = '001', peso = 67)]

Método - 3: onde () com operadores relacionais em várias condições

Aqui, estamos usando onde () função para filtrar o quadro de dados do Pyspark com operadores relacionais como>, < . == etc with multiple conditions.

Sintaxe:

Quadro de dados.onde (((conditina1) operador (condição2)… .)

Aqui, onde () aceita três parâmetros.

  1. quadro de dados.Column_name é a coluna onde a filtragem é aplicada
  2. Operador é o operador relacional
  3. O valor é o valor da string/numérico em comparação com os valores da coluna
  4. Condição Especifica - (DataFrame.Valor do operador column_name)

Exemplo:

Neste exemplo, vamos filtrar o quadro de dados com base na coluna de idade com ou (|) e (&) operador e exibir as linhas filtradas usando o método collect ().

#import o módulo PysPaprk
Importar Pyspark
#Import SparkSession para criar uma sessão
de Pyspark.SQL Import SparkSession
#import a função col
de Pyspark.SQL.funções Importar col
#Crie um aplicativo chamado Linuxhint
Spark_App = SparkSession.construtor.AppName ('Linuxhint').getorcreate ()
# Crie dados dos alunos com 5 linhas e 6 atributos
alunos = [
'rollno': '001', 'nome': 'sravan', 'idade': 23,
'Altura': 5.79, 'Peso': 67, 'Endereço': 'Guntur',
'rollno': '002', 'nome': 'ojaswi', 'idade': 16,
'Altura': 3.79, 'Peso': 34, 'Endereço': 'Hyd',
'rollno': '003', 'nome': 'gnanesh chowdary', 'idade': 7,
'Altura': 2.79, 'Peso': 17, 'Endereço': 'Patna',
'rollno': '004', 'nome': 'rohith', 'idade': 9,
'Altura': 3.69, 'Peso': 28, 'Endereço': 'Hyd',
'rollno': '005', 'nome': 'sridevi', 'idade': 37,
'Altura': 5.59, 'Peso': 54, 'Endereço': 'Hyd']
# Crie o DataFrame
df = spark_app.CreatedAtAframe (estudantes)
#display dataframe
#por idade de filtragem superior a 10 e menos de 21
Imprimir (df.onde ((df.idade> 10) e (df.idade <21)).collect())
imprimir("---------------------------")
#display dataframe
#pela idade de filtragem superior a 10 ou menos de 21
Imprimir (df.onde ((df.idade> 10) | (df.idade <21)).collect())

Saída:

[Linha (endereço = 'hyd', idade = 16, altura = 3.79, nome = 'ojaswi', rollno = '002', peso = 34)]
---------------------------
[Linha (endereço = 'guntur', idade = 23, altura = 5.79, nome = 'sravan', rollno = '001', peso = 67), linha (endereço = 'hyd', idade = 16, altura = 3.79, nome = 'ojaswi', rollno = '002', peso = 34), linha (endereço = 'patna', idade = 7, altura = 2.79, nome = 'gnanesh Chowdary', rollno = '003', peso = 17), linha (endereço = 'hyd', idade = 9, altura = 3.69, nome = 'rohith', rollno = '004', peso = 28), linha (endereço = 'hyd', idade = 37, altura = 5.59, nome = 'sridevi', rollno = '005', peso = 54)]

Método - 4: onde () com expressão SQL

Aqui, usamos a função where () para filtrar o quadro de dados do Pyspark com a expressão SQL. A condição é fechada por "". No entanto, podemos especificar o operador relacional como uma condição.

Sintaxe:

Quadro de dados.onde (“dataframe.Valor do operador column_name ”)

Aqui, onde () aceita três parâmetros.

  1. quadro de dados.Column_name é a coluna onde a filtragem é aplicada
  2. Operador é o operador relacional
  3. O valor é o valor da string/numérico em comparação com os valores da coluna

Exemplo:

Neste exemplo, filtraremos o quadro de dados com base em colunas de idade, altura, peso e nomes com diferentes operadores relacionais e exibirá as linhas filtradas usando o método collect ().

#import o módulo PysPaprk
Importar Pyspark
#Import SparkSession para criar uma sessão
de Pyspark.SQL Import SparkSession
#import a função col
de Pyspark.SQL.funções Importar col
#Crie um aplicativo chamado Linuxhint
Spark_App = SparkSession.construtor.AppName ('Linuxhint').getorcreate ()
# Crie dados dos alunos com 5 linhas e 6 atributos
alunos = [
'rollno': '001', 'nome': 'sravan', 'idade': 23,
'Altura': 5.79, 'Peso': 67, 'Endereço': 'Guntur',
'rollno': '002', 'nome': 'ojaswi', 'idade': 16,
'Altura': 3.79, 'Peso': 34, 'Endereço': 'Hyd',
'rollno': '003', 'nome': 'gnanesh chowdary', 'idade': 7,
'Altura': 2.79, 'Peso': 17, 'Endereço': 'Patna',
'rollno': '004', 'nome': 'rohith', 'idade': 9,
'Altura': 3.69, 'Peso': 28, 'Endereço': 'Hyd',
'rollno': '005', 'nome': 'sridevi', 'idade': 37,
'Altura': 5.59, 'Peso': 54, 'Endereço': 'Hyd']
# Crie o DataFrame
df = spark_app.CreatedAtAframe (estudantes)
#display dataframe
#pela idade de filtragem como 23
#Using SQL Expression
Imprimir (df.onde ("idade == 23").colet ()))
imprimir("---------------------------")
#display dataframe
#por altura de filtragem como 2.79
#Using SQL Expression
Imprimir (df.onde ("altura == 2.79 ").colet ()))
imprimir("---------------------------")
#display dataframe
#por peso de filtragem maior que 30
#Using SQL Expression
Imprimir (df.onde ("peso> 30").colet ()))
imprimir("---------------------------")
#display dataframe
#by filtrando nome como sravan
#Using SQL Expression
Imprimir (df.onde ("nome == 'sravan'").colet ()))

Saída:

[Linha (endereço = 'guntur', idade = 23, altura = 5.79, nome = 'sravan', rollno = '001', peso = 67)]
---------------------------
[Linha (endereço = 'patna', idade = 7, altura = 2.79, nome = 'Gnanesh Chowdary', rollno = '003', peso = 17)]
---------------------------
[Linha (endereço = 'guntur', idade = 23, altura = 5.79, nome = 'sravan', rollno = '001', peso = 67), linha (endereço = 'hyd', idade = 16, altura = 3.79, nome = 'ojaswi', rollno = '002', peso = 34), linha (endereço = 'hyd', idade = 37, altura = 5.59, nome = 'sridevi', rollno = '005', peso = 54)]
---------------------------
[Linha (endereço = 'guntur', idade = 23, altura = 5.79, nome = 'sravan', rollno = '001', peso = 67)]

Método - 5: onde () com métodos de string

Aqui, estamos usando a função where () para filtrar o quadro de dados Pyspark com métodos de string. Estes são aplicados nas colunas cujo tipo de dados é uma string. Eles são

começa com() - Verifique o caractere inicial nos dados fornecidos

Sintaxe:

Quadro de dados.onde (dataframe.nome da coluna.StartSwith ("personagem")

Aqui,

Column_name é a coluna em que a filtragem é aplicada onde o valor começa com o personagem fornecido.

termina com() - Verifique o caractere final nos dados fornecidos

Sintaxe:

Quadro de dados.onde (dataframe.nome da coluna.endswith ("personagem")

Aqui,

Column_name é a coluna em que a filtragem é aplicada onde o valor termina com o personagem fornecido.

contém () - Verifique se o caractere contém nos dados fornecidos

Sintaxe:

Quadro de dados.onde (dataframe.nome da coluna.contém ("personagem")

Aqui,

Column_name é a coluna em que a filtragem é aplicada onde o valor contém com o personagem fornecido.

Exemplo:

Neste exemplo, vamos filtrar com base na coluna de endereço

#import o módulo PysPaprk
Importar Pyspark
#Import SparkSession para criar uma sessão
de Pyspark.SQL Import SparkSession
#import a função col
de Pyspark.SQL.funções Importar col
#Crie um aplicativo chamado Linuxhint
Spark_App = SparkSession.construtor.AppName ('Linuxhint').getorcreate ()
# Crie dados dos alunos com 5 linhas e 6 atributos
alunos = [
'rollno': '001', 'nome': 'sravan', 'idade': 23,
'Altura': 5.79, 'Peso': 67, 'Endereço': 'Guntur',
'rollno': '002', 'nome': 'ojaswi', 'idade': 16,
'Altura': 3.79, 'Peso': 34, 'Endereço': 'Hyd',
'rollno': '003', 'nome': 'gnanesh chowdary', 'idade': 7,
'Altura': 2.79, 'Peso': 17, 'Endereço': 'Patna',
'rollno': '004', 'nome': 'rohith', 'idade': 9,
'Altura': 3.69, 'Peso': 28, 'Endereço': 'Hyd',
'rollno': '005', 'nome': 'sridevi', 'idade': 37,
'Altura': 5.59, 'Peso': 54, 'Endereço': 'Hyd']
# Crie o DataFrame
df = spark_app.CreatedAtAframe (estudantes)
#display dataframe
#By Filtering Endereço
#starts com 'h'
Imprimir (df.onde (df.endereço.StartSwith ("H")).colet ()))
imprimir("-----------------")
#display dataframe
#By Filtering Endereço
#ends com 'r'
Imprimir (df.onde (df.endereço.endswith ("r")).colet ()))
imprimir("-----------------")
#display dataframe
#By Filtering Endereço
#Comntains 'tu'
Imprimir (df.onde (df.endereço.contém ("r")).colet ()))

Saída:

[Linha (endereço = 'hyd', idade = 16, altura = 3.79, nome = 'ojaswi', rollno = '002', peso = 34), linha (endereço = 'hyd', idade = 9, altura = 3.69, nome = 'rohith', rollno = '004', peso = 28), linha (endereço = 'hyd', idade = 37, altura = 5.59, nome = 'sridevi', rollno = '005', peso = 54)]
-----------------
[Linha (endereço = 'guntur', idade = 23, altura = 5.79, nome = 'sravan', rollno = '001', peso = 67)]
-----------------
[Linha (endereço = 'guntur', idade = 23, altura = 5.79, nome = 'sravan', rollno = '001', peso = 67)]

Conclusão

Este artigo discute como usar um filtro WHERS () com vários métodos no Pyspark DataFrame no Python. E incluímos todas as condições com expressões SQL também.