Data Engineering

Aprender as Funções Spark Filter e Write

Fala galera do mundo dos dados, hoje é dia de aprender as funções Spark filter e write no PySpark. Dando continuidade a série Fluxo de Dados com Spark! Chegou a hora de aprender algumas funções do Spark. Como precisamos pegar dados em algum lugar para levar eles após o processamento para outro lugar. Já aprendemos a trabalhar com as origens dos dados, agora precisamos filtrar e gravar em outro lugar.

Sendo assim, iremos apresentar como filtrar e gravar dados com Spark. Para começar vale relembrar como ler um arquivo json. Sem mais delongas vamos à prática com Dados ao Cubo.

Ler Dataframe com o Spark

Primeiramente, temos que conhecer a origem dos dados. Aqui temos um arquivo de carros com nome de cars.json.

Para começar temos a criação da sessão Spark, lembrando que sessão é a base para trabalhar com o Spark. Na sequência a leitura do arquivo JSON para DataFrame, vamos ler um arquivo JSON chamado cars.json e criar um DataFrame chamado df_cars. E então a exibição do DataFrame, o comando show simplesmente exibe o conteúdo do df_cars. Podemos verificar se a leitura do JSON foi feita corretamente.

from pyspark.sql import SparkSession

if __name__ == __main__:
  spark = SparkSession.builder.getOrCreate()
  df_cars = spark.read.json(cars.json)
  df_cars.show(5)

E então temos os dados carregados sendo exibidos na imagem abaixo.

Podemos ainda, imprimir o esquema schema do DataFrame. O esquema descreve a estrutura dos dados no DataFrame, incluindo o nome das colunas e os tipos de dados associados a cada coluna. Para isso utilizamos a função printSchema, conforme código a seguir.

df_cars.printSchema()

Confere o resultado na imagem abaixo.

Para completar a leitura e saber que carregamos tudo certinho, temos a função count que irá mostrar quantos registros tem o DataFrame.

df_cars.count()

Com os dados carregados, chegou a hora de filtrar e em seguida gravar os dados de acordo com os filtros.

Filtrar Dataframe com o Spark

Para filtrar um Dataframe com o Spark, utilizamos a função filter seguida de uma ou mais condições a serem aplicadas aos dados.

Aqui, estamos filtrando o df_cars para incluir apenas as linhas em que a coluna Origin é igual a “Europe”. Ou seja, estamos selecionando apenas os carros de origem europeia. Em seguida, exibe o resultado do filtro e imprime na tela o DataFrame resultante da operação anterior.

df_cars_eu = df_cars.filter(Origin = "Europe").show()

Então, esse código em Python com PySpark está filtrando carros de um DataFrame chamado df_cars, mantendo apenas aqueles de origem europeia, e em seguida, exibe esse resultado na tela, conforme imagem abaixo.

Agora faremos o filtro no df_cars para incluir apenas as linhas em que a coluna Origin é igual a “USA”. Ou seja, estamos selecionando apenas os carros de origem dos Estados Unidos. Em seguida, exibe o resultado do filtro e imprime na tela o DataFrame resultante da operação anterior.

df_cars_us = df_cars.filter(Origin = "USA").show()

Então, temos na imagem abaixo o DataFrame apenas os carros de origem dos Estados Unidos sendo exibidos.

Para finalizar os filtros, agora faremos o filtro no df_cars para incluir apenas as linhas em que a coluna Acceleration é maior que “14.2”. Ou seja, estamos selecionando apenas os carros com aceleração maior que 14.2. Em seguida, exibe o resultado do filtro e imprime na tela o DataFrame.

df_cars.filter(Acceleration > 14.2).show()

Confere na imagem abaixo o DataFrame apenas os carros com aceleração maior que 14.2 sendo exibidos.

Aplicando os filtros necessários podemos gravar os novos DataFrames criados.

Gravar Dataframe com o Spark

Para filtrar um Dataframe com o Spark, utilizamos a função write seguida do formato aplicado aos dados.

Aqui, estamos filtrando o df_cars para incluir apenas as linhas em que a coluna Origin é igual a “Europe”. Em seguida, o comando write está escrevendo o df_cars_eu em um arquivo CSV. O argumento cars_eu especifica o nome do diretório onde os arquivos CSV serão armazenados.

df_cars_eu = df_cars.filter(Origin = "Europe")
df_cars_eu.write.csv(cars_eu)

Em resumo, esse código em Python com PySpark está filtrando carros de um DataFrame chamado df_cars, mantendo apenas aqueles de origem europeia, e em seguida, salvando esses dados em um arquivo CSV no diretório cars_eu. Observe o resultado na imagem abaixo.

Agora faremos para os carros de origem dos Estados Unidos. Aqui, estamos filtrando o df_cars para incluir apenas as linhas em que a coluna Origin é igual a “USA”. Em seguida, o comando write está escrevendo o df_cars_us em um arquivo CSV. O argumento cars_us especifica o nome do diretório onde os arquivos CSV serão armazenados.

df_cars_us = df_cars.filter(Origin = "USA")
df_cars_us.write.csv(cars_us)

Observe o resultado na imagem abaixo, o arquivo CSV apenas com os carros de origem dos Estados Unidos no diretório cars_us.

E então fechamos as primeiras funções Spark. Gostou? Quer mais? Confere todo esse passo a passo das funções Spark filter e write com Spark em vídeo, no canal do Fluxo de Dados!

Funções Spark Filter e Write com o Fluxo de Dados

Esse conteúdo é uma parceria com o canal do Fluxo de Dados, lá você confere as funções Spark filter e write e muito mais.

E então finalizamos mais um post da série Fluxo de Dados com Spark . Fica ligado nos próximos conteúdos que vai ter toda a continuidade de como trabalhar com Spark. Ao final desta série, você estará 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.

Conteúdos ao Cubo

Por fim, deixo algumas sugestões de conteúdos que você pode encontrar no Dados ao Cubo, sempre falando sobre o mundo dos dados.

Finalizo com um convite para você ser Parceiro de Publicação Dados ao Cubo e escrever o próximo artigo, compartilhando conhecimento para toda a comunidade de dados. Não esqueça de assinar a nossa Newsletter para ficar por dentro de todas as novidades.

Recent Posts

Manipulando Dados no MongoDB com Python

Fala Galera do mundo dos dados, hora de manipular dados no MongoDB com Python. Dessa…

3 meses ago

Manipulando Dados no Cassandra com Python

Fala Galera do mundo dos dados, hora de manipular dados no Cassandra com Python. Dessa…

3 meses ago

Aprender a Função Select do Spark

Fala galera do mundo dos dados, hoje é dia de aprender a função Select do Spark.…

3 meses ago

Transformar Consultas SQL em Visualização no Metabase

Fala galera do mundo dos dados, hoje é dia de transformar consultas SQL em visualizações…

3 meses ago

Banco de Dados com SQL

Fala galera do mundo dos dados, dando continuidade às consultas de banco de dados com…

3 meses ago

Bancos de Dados NoSQL com Python

Fala galera do mundo dos dados, hora de conhecer os bancos de dados NoSQL com…

3 meses ago