Data Analytics Data Engineering Python

Aprender a Função Select do Spark

dataframe_functions

Fala galera do mundo dos dados, hoje é dia de aprender a função Select do Spark. Retomando a série Fluxo de Dados com Spark! Hoje é dia de aprender mais como fazer seleção de dados com o PySpark utilizando a sua função Select. Pensando em manipulação de dados para fazer uma exploração na base.

Sendo assim, iremos apresentar como realizar seleção com Spark. Para começar precisamos criar os DataFrames para ter dados e construir nosso exemplos. Sem mais delongas, partiu à prática com Dados ao Cubo. 

Criar Sessão Spark

Primeiramente, iremos criar a sessão Spark. Para que possamos executar a nossa aplicação utilizando o Spark.

Com o código Python abaixo, será feita a importação das bibliotecas.

# importa bibliotecas
from pyspark.sql import SparkSession, functions as f

Na sequência a criação da sessão Spark.

# cria sessão spark
spark = SparkSession.builder.getOrCreate()

Com a sessão Spark criada, podemos seguir para criar o DataFrame com os dados.

Criar Dataframes com Spark

Para criar a nossa base de dados iremos gerar uma lista de dicionários. Dessa forma será possível criar um DataFrame Spark com essa lista. 

# cria uma lista de dicionários
data = [
	{'code':1, 'rate':5, 'active':True, 'comment':'I like that!'},
	{'code':2, 'rate':4, 'active':True, 'comment':'I loved, I will share with my team'},
	{'code':3, 'rate':3, 'active':False, 'comment':'I liked, but I think it could have more features'}
]

Em seguida, iremos utilizar a função createDataFrame na lista de dados criada anteriormente. Com isso o Spark irá transformar esses dados em um DataFrame. 

# cria dataframe com a lista
df = spark.createDataFrame(data)

Agora que já temos os dados criados no formato de um Data Frame Spark, podemos seguir para exibição do mesmo.

Exibição de Dados com Spark

Antes de visualizar os dados, faremos um check no esquema dos mesmos. Utilizando a função printSchema do PySpark, conseguimos listar o esquema de dados com as colunas e o formato de dados de forma bem simples. 

# confere o schema dos dados
df.printSchema()

Na imagem abaixo temos o esquema do DataFrame Spark.

Agora vamos aplicar a função show para exibir as primeiras linhas do nosso conjunto de dados. 

# visualiza as primeiras linhas
df.show()

E então temos a imagem a seguir com as primeiras linhas do DataFrame Spark.

Após a conferência dos dados, seguiremos para a seleção de dados com Spark.

Seleção de Dados com Spark

Para a seleção de dados com Spark, iremos aprender as funções select e selectExpr do PySpark. Como bônus, ainda irei mostrar como combinar a função select com outras funções do PySpark. 

Função Select do Spark

No primeiro exemplo, utilizaremos a função select para escolher as colunas que serão exibidas.

# seleção de colunas específicas
df.select('code').show()

E então temos o resultado do select na imagem abaixo.

Para este exemplo, iremos acrescentar mais uma coluna na seleção e uma outra que será gerada utilizando uma função do Spark. neste caso a função concat que faz a concatenação de colunas do DataFrame Spark. 

# seleção utilizando funções nas colunas
df.select('code','rate',f.concat('code','rate')).show()

Como resultado a imagem a seguir.

Fechando os exemplos de select do Spark, aplicando um alias para as colunas da seleção, ou seja, renomeando as colunas na exibição. 

# seleção renomeando as colunas
df.select('code',
	f.col('rate').alias('name'),
	f.concat('code','rate').alias('name2')).show()

Assim temos a imagem a seguir com as colunas do DataFrame Spark renomeadas.

Continuamos a seleção de dados com Spark, porém agora utilizando o select com funções embutidas. 

Função SelectExpr do Spark

Aqui utilizaremos a função selectExpr, mas temos um benefício de incluir funções na seleção. Observe o mesmo exemplo da função concat agora com o selectExpr. 

# seleção com funções embutidas
df.selectExpr('code','rate','concat(code,rate)').show()

E então temos a imagem a seguir com a função selectExpr.


Com selectExpr, podemos aplicar várias outras funções, confere um outro exemplo a seguir. Neste caso, vamos utilizar a função substring, que retorna apenas uma parte de uma string de acordo com os parâmetros.

# seleção com funções embutidas
df.selectExpr('comment','substring(comment,1,10)').show()

Como resultado temos a imagem abaixo.

Para fechar selectExpr, confere como fazemos para renomear as colunas na exibição dos dados. 

# seleção com funções embutidas renomeando as colunas
df.selectExpr('comment','substring(comment,1,10) as name').show()

E então temos a imagem a seguir com a seleção com expressão e coluna renomeada.

Dessa forma, podemos conhecer a diferença entre as funções select e selectExpr de acordo com os exemplos acima. Agora utilizaremos a função select combinada com outras funções do Spark. 

Função Select com Filter no Spark

Já aprendemos em outros momentos aqui mesmo no Dados ao Cubo, como utilizar a função Filter no Spark. Mas agora, iremos combinar a função select com filter no Spark. Dessa forma, podemos além de fazer uma seleção nos dados, também aplicamos os filtros desejados na seleção. no exemplo abaixo iremos selecionar apenas os registros que estão como inativos. 

# aplica funções select e filter no dataframe
df.select('code','comment').filter('active is False').show(truncate=False)

Assim temos a imagem abaixo com o resultado da seleção com filtro DataFrame Spark.

E assim finalizamos a função Select do Spark. Gostou? Quer mais? Confere todo esse passo a passo da função Select do Spark em vídeo, no canal do Fluxo de Dados!

Função Select do Spark com o Fluxo de Dados

Esse conteúdo é uma parceria com o canal do Fluxo de Dados, lá você confere a função Select do Spark e muito mais.

E então mais um adicional da série Fluxo de Dados com Spark. Fica ligado nos próximos conteúdos sobre outros temas relacionados a big data. Agora você está pronto para embarcar em suas próprias jornadas analíticas usando PySpark. A capacidade de processar dados em escala e realizar análises complexas torna PySpark uma ferramenta valiosa para profissionais que buscam explorar o potencial máximo do big data.

Gostou? Compartilhe!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *