Pyspark - maior função

Pyspark - maior função
É possível retornar os maiores elementos em duas ou mais colunas no Pyspark Dataframe.

Pyspark suporta a função Greatest () que é usada para encontrar os valores mais altos em várias colunas em todas as linhas em um Pyspark RDD ou em um pyspark Dataframe.

Está disponível no Pyspark.SQL.funções módulo.

Sintaxe:

dataframe_obj.Selecione (Maior (DataFrame_OBJ.Column1, dataframe_obj.coluna2,…))

Parâmetro:

São necessárias colunas como parâmetros.

Podemos acessar as colunas usando o “.Operador (Column1, Column2,. representa os nomes das colunas).

Dados:

Aqui, criamos um pyspark DataFrame que possui 5 colunas -['sujeito_id', 'nome', 'idade', 'tecnologia1', 'tecnologia2'] com 10 linhas.

Importar Pyspark
de Pyspark.SQL Import SparkSession
Spark_App = SparkSession.construtor.nome do aplicativo('_').getorcreate ()
alunos = [(4, 'sravan', 23, 'php', 'testes'),
(4, 'sravan', 23, 'php', 'testing'),
(46, 'Mounika', 22, '.Net ',' html '),
(4, 'Deepika', 21, 'Oracle', 'html'),
(46, 'Mounika', 22, 'Oracle', 'Testing'),
(12, 'Chandrika', 22, 'Hadoop', 'C#'),
(12, 'Chandrika', 22, 'Oracle', 'Testing'),
(4, 'Sravan', 23, 'Oracle', 'C#'),
(4, 'Deepika', 21, 'Php', 'C#'),
(46, 'Mounika', 22, '.Net ',' teste ')
]
dataframe_obj = spark_app.CreatedataFrame (estudantes, ['sujeito_id', 'nome', 'idade', 'tecnologia1', 'tecnologia2']))
print ("---------- DataFrame ----------")
dataframe_obj.mostrar()

Saída:

Agora, veremos os exemplos para retornar os maiores valores em duas ou várias colunas do DataFrame anterior.

Exemplo 1:

Criamos o DataFrame dado. Agora, retornamos os maiores valores do sujeito_id e idade colunas.

# Importe a maior função do módulo - Pyspark.SQL.funções
de Pyspark.SQL.funções importam melhor
#Compare As colunas - sujeito e envelhecer e retornar os maiores valores em cada linha.
dataframe_obj.Selecione (dataframe_obj.sujeito_id, dataframe_obj.idade, maior (dataframe_obj.sujeito_id, dataframe_obj.idade)).mostrar()

Saída:

Explicação:

Você pode comparar os dois valores da coluna em cada linha.

Maior (4,23) - 23
Maior (4,23) - 23
Maior (46,22) -46
Maior (4,21) - 21
Maior (46,22) - 46
Maior (12,22) - 22
Maior (12,22) - 22
Maior (4,23) - 23
Maior (4,21) - 21
Maior (46,22) - 46.

Exemplo 2:

Criamos o DataFrame dado. Agora, retornamos os maiores valores do nome , Technology1, e Technology2 colunas.

# Importe a maior função do módulo - Pyspark.SQL.funções
de Pyspark.SQL.funções importam melhor
#Compare the Columns - Nome, Technology1, Technology2 e Age e Retornar os maiores valores em cada linha.
dataframe_obj.Selecione (dataframe_obj.Nome, dataframe_obj.Technology1, dataframe_obj.Technology2,
Maior (dataframe_obj.Nome, dataframe_obj.Technology1, dataframe_obj.tecnologia2)).mostrar()

Saída:

Aqui, as cordas são comparadas com base nos valores ASCII.

Maior (Sravan, Php, Testing) - Sravan
Maior (Sravan, Php, Testing) - Sravan
Maior (Mounika, .Net, html) - Mounika
Maior (Deepika, Oracle, HTML) - Deepika
Maior (Mounika, Oracle, Testing) - Mounika
Maior (Chandrika, Hadoop, C#) - Chandrika
Maior (Chandrika, Oracle, Testing) - Chandrika
Maior (Sravan, Oracle, C#) - Sravan
Maior (Deepika, Php, C#) - Deepika
Maior (Mounika,.Rede, teste) -Mounika.

Código inteiro:

Importar Pyspark
de Pyspark.SQL Import SparkSession
Spark_App = SparkSession.construtor.nome do aplicativo('_').getorcreate ()
alunos = [(4, 'sravan', 23, 'php', 'testes'),
(4, 'sravan', 23, 'php', 'testing'),
(46, 'Mounika', 22, '.Net ',' html '),
(4, 'Deepika', 21, 'Oracle', 'html'),
(46, 'Mounika', 22, 'Oracle', 'Testing'),
(12, 'Chandrika', 22, 'Hadoop', 'C#'),
(12, 'Chandrika', 22, 'Oracle', 'Testing'),
(4, 'Sravan', 23, 'Oracle', 'C#'),
(4, 'Deepika', 21, 'Php', 'C#'),
(46, 'Mounika', 22, '.Net ',' teste ')
]
dataframe_obj = spark_app.CreatedataFrame (estudantes, ['sujeito_id', 'nome', 'idade', 'tecnologia1', 'tecnologia2']))
print ("---------- DataFrame ----------")
dataframe_obj.mostrar()
# Importe a maior função do módulo - Pyspark.SQL.funções
de Pyspark.SQL.funções importam melhor
#Compare As colunas - sujeito e envelhecer e retornar os maiores valores em cada linha.
dataframe_obj.Selecione (dataframe_obj.sujeito_id, dataframe_obj.idade, maior (dataframe_obj.sujeito_id, dataframe_obj.idade)).mostrar()
#Compare the Columns - Nome, Technology1, Technology2 e Age e Retornar os maiores valores em cada linha.
dataframe_obj.Selecione (dataframe_obj.Nome, dataframe_obj.Technology1, dataframe_obj.Technology2,
Maior (dataframe_obj.Nome, dataframe_obj.Technology1, dataframe_obj.tecnologia2)).mostrar()

Conclusão

A função melhor () é usada para encontrar os valores mais altos em várias colunas em todas as linhas em um Pyspark RDD ou em um quadro de dados Pyspark. Ele compara as colunas apenas com tipos de dados semelhantes. Caso contrário, aumenta a exceção de análise - As expressões devem ter o mesmo tipo.