Primeiras aulas do curso Spark: apresentando a ferramenta

Spark: apresentando a ferramenta

Começando o trabalho - Apresentação

Bem-vindos ao nosso curso de Spark para Data Science, que vai ajudar você, que é cientista de dados, a entrar nesse mundo dos dados volumosos. Isso mesmo.

Projetos que envolvem grandes volumes de dados precisam de ferramentas que consigam lidar com isso, sem que percamos performance, ao contrário, seria interessante ganharmos performance. E é nisso que o Spark vai nos ajudar.

Esse primeiro curso é uma introdução mesmo, é uma forma de conhecermos a maneira de lidar com dados usando o Spark. A ideia aqui é mostrar como fazer ciência de dados usando as ferramentas do Spark. E para isso precisamos começar do básico, que é vendo como trabalhar com uma base de dados no Spark.

Mas antes nós vamos aprender como configurar o Spark para funcionar na nossa máquina local e também em um notebook do Colab, que é justamente esse que eu estou mostrando aqui na tela para vocês.

Temos o notebook todo pronto para executarmos as nossas tarefas do nosso curso. Depois vamos carregar um conjunto de dados relativamente grande em dataframes do próprio Spark, isso mesmo. O Spark também tem os seus próprios dataframes.

E com esses dataframes faremos coisas como manipulação dos dados, veremos algumas alterações, consultas específicas com filtros, agrupamentos, ordenações, gerar estatísticas descritivas. Também veremos como utilizar comandos SQL puros para realizar essas consultas.

E no final vamos conhecer alguns tipos de arquivos que são utilizados em projetos Big Data e como criar esses arquivos a partir dos nossos dataframes da aula aqui. São coisas assim que vamos tratar nesse curso.

Uma coisa importante, eu queria deixar claro, esse não é um curso de infra, não vamos configurar um cluster Spark na nuvem nem nada como isso, é um curso voltado para Data Science e Machine Learning com o uso das ferramentas do Spark.

Já no próximo vídeo eu estou esperando vocês para colocarmos a mão na massa e começarmos a conhecer o Spark.

Começando o trabalho - Apache Spark - Introdução

Vamos começar o nosso curso de Spark. Você já deve ter notado que a geração de informações de diversas fontes, celular, rede social, e-mail e por aí vai, está sempre aumentando. E com essa elevação constante, a aplicação de ciência de dados e a construção de modelos de Machine Learning de forma eficiente e rápida começa a virar um desafio.

As ferramentas que estamos acostumados a usar nos nossos projetos, por exemplo, o Pandas, começam a apresentar perda de performance e até mesmo, em alguns casos, não dão conta do recado.

Quando encontramos, por exemplo, problemas como processamento de fluxo de dados em tempo real, consumindo uma API de uma rede social, por exemplo, onde a carga é constante e volumosa, também projetos que envolvam leitura de milhares de sensores, internet das coisas.

Ou seja, projetos com carga constante e volumosos dados, precisamos procurar ferramentas que quebrem esse problema, ou seja, que nos permitam extrair informação de conjunto de dados volumosos sem perdermos performance e, de preferência, sem elevar os custos do projeto.

Para isso temos as soluções de Big Data, como o Apache Spark, que estamos começando a aprender agora. Que foram idealizadas para acelerar o processo de tomada de decisão, redução de custo, tempo de processamento. Mas o que é esse Apache Spark?

O Spark é uma plataforma de computação em cluster. Com ele conseguimos distribuir os dados e as tarefas em clusters com vários nós. Entendam cluster como um conjunto de servidores, computadores. E os nós seriam cada computador individualmente.

E o Spark permite que você distribua os seus dados e as tarefas por esses vários nós do cluster. Ele é uma estrutura de processamento paralelo, que dá também suporte a processamento e memória.

Uma aplicação do Spark pode carregar e armazenar dados em cache de memória, e lê essas informações quantas diversas vezes forem necessárias, diversas vezes.

A computação em memória é muito mais rápida do que aplicativos que são baseados em disco, como o Hadoop, por exemplo, que compartilha os dados por meio do seu sistema de arquivos.

E essa característica faz com que o Spark apresente uma performance muito superior ao Hadoop. Em alguns casos chega a ser 100 vezes mais rápido do que o Hadoop, que é bastante coisa.

O nosso objetivo nesse curso não é entrar nos detalhes de configuração do Spark, aqui teremos uma pegada totalmente de Data Science e Machine Learning. O que eu quero dizer é que veremos como fazer ciência de dados utilizando o ferramental que o Spark nos oferece.

Outra característica interessante do Spark é que ele dá suporte a algumas linguagens de programação, como, por exemplo, o Java, o Scala e o querido do Data Science, que é o nosso Python, que é o que trabalharemos nesse curso.

Eu deixei aqui um notebook aí no seu curso, da aula, para você fazer download, que já vem com tudo estruturado, algumas explicações, material de referência, a referência às bibliotecas aqui, por exemplo, eu estou com ele aberto aqui. Esses títulos aqui, onde está o “Apache Spark”, é um link que vai levar você à documentação do Apache Spark.

Aqui, como eu falei, como ele dá suporte a mais de uma linguagem de programação, temos aqui o PySpark, que é o pacote que vai dar acesso a linguagem Python, vai nos permitir construir aplicações Spark usando a linguagem Python.

E como vemos aqui nessa figura, o Spark tem alguns componentes para diferentes tipos de processamentos, todos eles construídos sobre o Spark Core, como estamos vendo aqui na figura, esse retângulo de baixo, que é o componente que disponibiliza as funções básicas para todo esse processamento, o map, o reduce, o filter, o collect.

[Aula1_video2_imagem1]

Esses componentes funcionam integrados na própria ferramenta, isso que é um diferencial legal dele, porque, diferente do Hadoop, que é onde precisamos utilizar, por exemplo, uma ferramenta que se integre a ele, mas que não são distribuídas com ele, elas são distribuídas separadamente.

Nesse curso falaremos sobre o componente que está nesse quadrado aqui no canto superior esquerdo, que é o Spark SQL, que nos permite usar SQL para realizar consultas e processamento sobre os dados no Spark.

É o componente para processamento de dados estruturados, que nos oferece o nosso querido dataframe. E não é o Pandas dataframe. É por isso que precisamos aprender a usar essa estrutura de dados, para poder lidar com os dados aqui no Spark, dados volumosos, como eu disse.

Você deve estar se perguntando: “Se esse Spark é tão rápido, tão maravilhoso, por que eu preciso do Pandas?”. O Spark é bastante eficiente para trabalhar com dados volumosos e um cenário de conjunto de dados não tão grande pode ser até menos eficiente que o Pandas.

Então esses exemplos que eu dei, fluxo de dados em tempo real, a internet das coisas, essas coisas nós acabamos tendo um volume muito grande de carga de dados e aquela carga constante também, então o Spark é uma ferramenta melhor do que o Pandas. Até porque o Padas, por exemplo, fica limitado à memória do seu computador, então você não vai poder ter um dataframe tão grande como você vai poder fazer aqui no Spark.

Esse vídeo era isso, para apresentarmos o nosso curso. No próximo vídeo vamos aprender como fazer a configuração do nosso ambiente, instalar isso no Windows e depois também usando o notebook Colab, que é o que trabalharemos na aula. Até lá.

Começando o trabalho - Utilizando Spark no Windows

Antes de iniciarmos um projeto que envolve Data Science, Machine Learning, grandes volumes de dados, que é o nosso caso aqui, precisamos definir as ferramentas que vamos usar e configurar o nosso ambiente de desenvolvimento.

Esse procedimento para nós, que somos cientistas de dados, que já trabalhamos com isso há algum tempo, já é bastante conhecido. Escolhemos uma IDE, instalamos o pacote x, importamos o pacote y. Mas aqui tem algumas coisas um pouco diferentes, então eu vou fazer com vocês o passo a passo aqui.

Primeiro eu escolhi fazer para Windows, caso você queira rodar na sua máquina local, no Windows, então vou mostrar como você obtém o Spark, o faz funcionar aqui no Windows. E depois veremos como ele funciona no Colab, é um pouco mais simples, e é a ferramenta que usaremos no curso. Então vamos lá.

Eu deixei no nosso notebook, que eu deixei para vocês realizarem o download, o passo a passo já pronto. Está tudo escrito com os links para fazer o download das ferramentas, está tudo meio que pronto aqui, então é só você seguir esse passo a passo que eu vou fazer mais ou menos com você agora e vai dar tudo certo.

Primeira coisa, instalar o Java. Provavelmente na sua máquina Windows já vai estar instalado o Java, mas se não estiver, você vai verificar aqui. Com esse comando java -version você pode verificar se tem ou não e a versão que você está usando. Para usarmos o Spark, precisamos da versão 7 para cima do Java.

Eu faço a verificação, a minha aqui, esse 1.8, quer dizer que eu estou na versão 8, então eu já estou com o Java resolvido, não preciso instalar. Precisou instalar? Clica no link, “clicando aqui”, o “aqui” é o link. Clica nele, você vai ser direcionado para a página do Java para fazer o download da versão mais recente que temos, essa página que será acessada.

Próximo passo, instalar o Python. Estamos usando o Python, precisamos do Python. Para funcionar aqui com o Spark vai precisar da versão 2.6 ou superior do Python. No meu caso, eu também já tenho instalado.

Para verificar tem o comando aqui, está tudo aqui no nosso notebook, python --version, eu clico no “Enter”, eu estou com a versão 3.8.8, eu estou com o Anaconda instalado nessa máquina, então ele já traz o Python e um monte de ferramentas junto.

Já verifiquei esses dois passos, tudo bem. Não está com o Python instalado? Clica aqui, você vai ser direcionado para a página do Python, “python.org/downloads/windows”, e vai poder baixar o Python. Ou também você pode fazer como eu fiz aqui, instalar o Anaconda e já ter toda a configuração resolvida. Vamos em frente.

Próximo passo, precisamos instalar o Spark, vamos chamar assim. Mas, na verdade, não faremos uma instalação, faremos o download do pacote que está disponível lá, vamos escolher a versão, vamos trazer para a nossa máquina e vamos expandir, ele vai vir zipado e vamos extrair o arquivo, deixar a pasta lá e vamos ver como faz para acessar. Esse passo 3 aqui te mostra como fazer isso.

E ele tem umas informações extras, que é para você usar o shell que o PySpark oferece também. Não abordaremos isso no curso, não usaremos isso, usaremos o notebook, mas eu deixei aqui o passo a passo, se você tiver curiosidade, é só seguir e vai dar tudo certo.

Para fazer isso, eu clico nesse link, “Selecione a versão mais estável clicando aqui”, o “aqui” é o link que vai te direcionar para essa página, “spark.apache.org/downloads.html”. E aqui você vai poder selecionar a versão do Spark que você está usando. Nós usaremos na nossa aula a 3.1.2, que é a que está disponível agora. E também escolher o pacote. Aqui, no caso, você vai escolher o Hadoop que você vai utilizar.

Aqui tem mais de uma opção, tem o 3.2, o 2.7. Nós usaremos o 2.7, porque o 3.2 tem alguns problemas na utilização dos dataframes. Como isso não está totalmente solucionado, tem algumas conversas nos fóruns da vida, usaremos a versão 2.7, que dá suporte legal, não tem problema.

Seleciona a 3.1.2, 2.7, ele cria na linha de baixo esse link para você, clica nele, você vai ser direcionado, ele já te dá uma URL, você clica e faz o download dele. Vai começar o download aqui. Eu já tenho essa ferramenta aqui.

Ele vai vir numa extensão .tgz, que é uma extensão de arquivo comprimido. No caso, nessa máquina eu tenho o WinRAR instalado e o WinRAR dá suporte a extrair arquivos com essa extensão TGZ. Então se você tiver problema para extrair o arquivo, você pode usar o WinRAR para fazer o download dele na internet.

E você clica com o direito nele, já vai aparecer “WinRAR” e você vem em “Extrair aqui”. Ele vai fazer o quê? Ele vai criar essa pasta aqui, “spark-3.1.2-bin-hadoop2.7”, vai extrair as informações e já vai criar essa pasta para nós, onde tem todas as informações do Spark já na nossa máquina.

Feito isso, temos os passos extras aqui. Vamos voltar lá no nosso passo a passo. Feito isso, depois se você quiser acessar o shell do Python, você tem aqui o passo a passo.

Próximo passo, instalando o findspark. Eu já tenho instalado aqui. Você, para fazer essa instalação, basta vir no prompt e digitar isso aqui, pip install findspark. Isso é importante, eu já vou mostrar por quê.

E o passo último aqui seria o instalando o winutils. Isso é basicamente para quem for usar o shell do Spark. Quando você usar o shell, se você fizer essa configuração inicial e acessar, você vai notar que vão aparecer alguns erros.

Para acabar com esses erros, você tem que copiar essa ferramenta, winutils, é um arquivo executável, que está nesse endereço específico, para a versão que estamos usando, a versão do Hadoop 2.7. Ele vai te direcionar para a página do projeto no GitHub.

Aqui nessa pasta, que já está certa, eu escolho a versão do Hadoop que eu estou utilizando, 2.7, e venho aqui embaixo e faço o download do “winutils.exe”, somente desse arquivo. Faz o download dele. Ele está aqui já no meu projeto.

Feito isso, você entra na pasta do Spark – está lá tudo no passo a passo – cria uma pasta nova chamada “hadoop”, essa aqui. Dentro dela você cria outra pasta chamada “bin” e dentro dela você coloca o winutils. Feito isso, aquele [ININTELIGÍVEL] que está aparecendo no shell vai desaparecer, então esse passo extra é para quem for usar o shell.

Copiei, a minha pasta do Spark está lá, pronta para ser utilizada. Eu venho aqui, como eu estou rodando localmente agora, eu estou trabalhando localmente no meu Windows, eu acessei o Anaconda Navigator aqui e iniciei o Jupyter Notebook, simplesmente clicando nesse botão, “Launch”.

Ele me abriu essa interface do Jupyter e aqui eu criei um notebook novo, está vendo? Sem título aqui, notebook novo, criei-o e vou começar a usar, vou tentar usar o meu Spark.

O Spark tem um ponto de entrada para começarmos a trabalhar com ele, você tem sempre que criar esse ponto de entrada. Então from pyspark, reparem que eu não instalei o PySpark em lugar nenhum, .sql, usaremos o SQL, eu vou importar uma coisa chamada de SparkSession. Eu vou fazer o import desse cara.

“Shift + Enter”, reparem que ele diz que não encontrou o módulo PySpark. Como eu disse, eu não instalei. Só que embutido naquela pasta do Spark temos o módulo PySpark. Para que o meu notebook, aqui no caso, encontre esse PySpark, eu tenho que dizer para ele onde isso está, e eu uso aquela ferramenta, o findspark.

Como? Deixa eu colocar aqui em cima, eu vou criar uma célula, aqui em cima, “Insert > Insert Cell Above”, uma célula acima, e vou importar, import findspark. E logo aqui embaixo eu vou vir findspark.init(). Eu vou rodar isso e ele vai dizer que ele não encontrou a informação de onde o Spark está, em que pasta o Spark está.

Para indicar para ele em que pasta o Spark está, eu vou criar mais uma célula aqui em cima, pode ser “Insert > Insert Cell Above”, e vou importar o pacote os, import os. O pacote os vai nos permitir definir uma variável de ambiente para o nosso notebook, então os.environ[], se eu não me engano, somente isso, e aqui dentro dos colchetes eu passo, ele já pede aqui embaixo, ele não encontrou aqui no SPARK_HOME.

Então eu vou definir essa variável de ambiente, [“SPARK_HOME”], com o endereço de onde eu estou com meu Spark, então eu vou vir aqui nas pastas, onde eu coloquei o Spark? Ele está dentro dessa pasta “C:\spark\spark-3.1.2-bin-hadoop2.7”.

Outro detalhe que eu esqueci de falar, que está aí no documento, é que não coloque espaços, evite caracteres especiais nesse endereço que você está copiando agora, por exemplo, “C:\spark\spark-3.1.2-bin-hadoop2.7”. Nesse endereço evite espaços e caracteres especiais, senão você vai encontrar erros.

Eu defino aqui essa variável SPARK_HOME com o endereço onde está localizado o Spark. “Shift + Enter” e aqui agora eu posso rodar o findspark, ele já não vai mais apresentar erro, ou seja, ele encontrou o Spark.

E aqui embaixo eu já consigo iniciar uma sessão do Spark. E também criá-la aqui. Na verdade, eu só importei. Criar a sessão, vou chamar de spark =, criar uma variável com esse nome, vou chamar o SparkSession, vou usar o atributo .builder.master.

No próximo vídeo nós faremos basicamente a mesma coisa que eu estou fazendo aqui, só que no Google Colab. Esse .master(‘local[*]’) eu estou indicando que eu quero rodar localmente e usar quantas CPUs eu tiver disponíveis na máquina. Lembra que o Spark distribui os processos para as máquinas no nó. No caso aqui, estamos rodando local, ele vai usar as CPUs que temos disponíveis.

Para finalizar, .getOrCreate(), aqui ele vai criar para mim a sessão, demora um pouco só, e eu já posso acessar a sessão aqui embaixo, spark, já vou executar aqui. A primeira vez ele demora um pouco. SparkSession.builder.master(‘local[*]’).getOrCreate().

Eu rodei aqui embaixo, depois que ele criou, rodei o spark, e temos as informações de que o nosso Spark está rodando. Inclusive, temos aqui o Spark UI, que é uma interface de usuário para verificarmos os trabalhos que estamos rodando.

Nós não vamos entrar muito isso, porque para usar esse ferramental no Google Colab tem até jeito, mas não entraremos nesse ponto aqui nesse curso.

O que eu queria mostrar na configuração do Windows é isso, está o passo a passo lá para vocês. No próximo vídeo nós veremos como fazer isso para o Colab. Até lá.

Sobre o curso Spark: apresentando a ferramenta

O curso Spark: apresentando a ferramenta possui 186 minutos de vídeos, em um total de 66 atividades. Gostou? Conheça nossos outros cursos de Data Science em Data Science, ou leia nossos artigos de Data Science.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Data Science acessando integralmente esse e outros cursos, comece hoje!

Plus

  • Acesso a TODOS os cursos da plataforma

    Mais de 1200 cursos completamente atualizados, com novos lançamentos todas as semanas, em Programação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

  • Alura Língua (incluindo curso Inglês para Devs)

    Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.

12X
R$85
à vista R$1.020
Matricule-se

Pro

  • Acesso a TODOS os cursos da plataforma

    Mais de 1200 cursos completamente atualizados, com novos lançamentos todas as semanas, em Programação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

  • Alura Língua (incluindo curso Inglês para Devs)

    Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.

12X
R$120
à vista R$1.440
Matricule-se
Conheça os Planos para Empresas

Acesso completo
durante 1 ano

Estude 24h/dia
onde e quando quiser

Novos cursos
todas as semanas