Escolar Documentos
Profissional Documentos
Cultura Documentos
Python e Spark
www.datascienceacademy.com.br
Spark SQL
A linguagem SQL foi criada na década de 70 e desde então é o padrão para manipulação de
dados, em bancos de dados. Diversas versões e adaptações da linguagem SQL surgiram ao
longo do tempo. Muitas soluções de análise de dados são baseadas em SQL, como vimos
com linguagem R e Python. O Spark também nos oferece uma bibilioteca para trabalhar com
linguagem SQL, o Spark SQL. Essa biblioteca é a forma usada pelo Spark para manipular
dados estruturados.
www.datascienceacademy.com.br
Dataframes
A exemplo das linguagens R e Python, podemos usar dataframes com o Spark, através
do SparkSQL. Isso nos permite realizar operações com dados estruturados de forma
muito mais rápida e dinâmica e aproveitar o conhecimento já adquirido. Como veremos,
os dataframes possuem diferenças em relação aos RDD’s, embora internamente o
Spark trate os 2 objetos como a mesma estrutura.
www.datascienceacademy.com.br
O que vamos estudar neste capítulo?
• Cloud e Cluster Computing
• Linguagem SQL
• Spark SQL com RDD's
• Spark SQL com Dataframes
• Spark SQL com Arquivos CSV
• Spark SQL com Arquivos JSON
• Spark SQL com Bancos de Dados Relacionais
• Spark SQL com Bancos de Dados Não-Relacionais
• Tabelas Temporárias com Spark SQL
• Construindo um Cluster Spark em Cloud
www.datascienceacademy.com.br
Obrigado
www.datascienceacademy.com.br
Cloud e Cluster Computing
www.datascienceacademy.com.br
www.datascienceacademy.com.br
Não temos como processar e armazenar
Big Data em apenas uma máquina
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
Cluster
www.datascienceacademy.com.br
Cluster
Node
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
Google:
www.datascienceacademy.com.br
Cluster Network
www.datascienceacademy.com.br
Cluster Network
www.datascienceacademy.com.br
Ok, resolvemos o problema de armazenamento e
processamento, distribuindo os dados por clusters
(conjuntos de computadores) espalhados por datacenters
em todo mundo e oferecendo este serviço pela internet!
www.datascienceacademy.com.br
Mas como vamos processar esses dados distribuídos?
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
Problema 1 Cloud e Cluster
Armazenamento e Computing
Processamento
Problema 2 MapReduce
Processamento Distribuído
Problema 3
Performance
www.datascienceacademy.com.br
Computação na memória dos computadores em cluster
www.datascienceacademy.com.br
Problema 1 Cloud e Cluster
Armazenamento e Computing
Processamento
Problema 2 MapReduce
Processamento Distribuído
Processamento
Problema 3 em Memória
Performance (Apache Spark)
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
Obrigado
www.datascienceacademy.com.br
Linguagem SQL
A linguagem SQL surgiu em meados da década de 70, sendo resultado de um estudo
de membros do laboratório de pesquisa da IBM em San Jose, Califórnia. Este estudo
tinha foco em desenvolver uma linguagem que pudesse ser adaptada ao modelo
relacional. O primeiro sistema de BD baseado em SQL tornou-se comercial no final
dos anos 70 juntamente com outros sistema de BD’s relacionais. O sucesso da
linguagem foi tão grande que obrigou o ANSI (American National Standarts Institute),
a padronizar as implementações da linguagem, assim, nos dias de hoje, a maior
parte de BD’s seguem criteriosamente esta padronização, podendo ter algumas
variações, mais mesmo assim não afetando a padronização global da linguagem
tornando a portabilidade mais fácil.
www.datascienceacademy.com.br
Em 1982, foi lançada a primeira versão padronizada da SQL, que veio ganhando melhorias de
acordo com sua evolução e tornando-se assim, a mais poderosa ferramenta para definição e
manipulação de BD’s e hoje utilizada em grande parte dos BD existente, tais como MySQL,
Microsoft SQL Server, Oracle, entre outros. Como temos visto ao longo dos cursos da
Formação Cientista de Dados, boa parte das soluções de análise de dados em R e Python,
são baseadas em SQL e podemos ainda executar diretamente a linguagem SQL a partir
dessas e outras linguagens de programação.
www.datascienceacademy.com.br
Os comandos SQL se dividem em 3 tipos:
www.datascienceacademy.com.br
Linguagem de Consultas de Dados ou DQL (Data Query Language)
www.datascienceacademy.com.br
Instruções SELECT:
www.datascienceacademy.com.br
Instruções DML:
UPDATE: utilizado para alterar valores de uma ou mais linhas de uma tabela.
Exemplo: UPDATE CLIENTE set NOME = ‘Angela’ WHERE ID = 1000;
www.datascienceacademy.com.br
Instruções DDL:
CREATE: utilizado para criar objetos no banco de dados.
Exemplo (criar uma tabela):
CREATE TABLE FORNECEDOR ( ID INT PRIMARY KEY, NOME VARCHAR(50));
www.datascienceacademy.com.br
Instruções DCL:
www.datascienceacademy.com.br
Instruções DTL:
• BEGIN TRANSACTION
• COMMIT
• ROLLBACK
www.datascienceacademy.com.br
Terminologia:
• Relação
• Tabela
• Coluna (Atributo)
• Linhas (registros)
• Chave Primária (Primary Key)
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
Obrigado
www.datascienceacademy.com.br
Spark SQL
www.datascienceacademy.com.br
Funcionalidades do Spark SQL
• Dataframes
• API Data Source
• Servidor JDBC Interno
• Funcionalidades para Data Science
www.datascienceacademy.com.br
Componentes do Spark SQL
www.datascienceacademy.com.br
Dataframe
• RDDs já existentes
• Arquivos de dados estruturados
• conjunto de dados JSON
• Tabelas Hive
• Banco de dados externos
• Mais eficientes que os RDD’s
www.datascienceacademy.com.br
Dataframe
Suportar as operações:
• filter
• join
• groupby
• agg
• Operações podem ser aninhadas
www.datascienceacademy.com.br
Spark Session
www.datascienceacademy.com.br
SQL Context
www.datascienceacademy.com.br
Fontes de Dados JDBC
Outras funcionalidades na biblioteca Spark SQL incluem fontes de dados que fazem
uso de JDBC como interface de integração. Interfaces de integração JDBC podem
ser utilizadas para ler informações armazenadas em banco de dados relacionais. O
JDBC é um conjunto de classes e interfaces (API) escritas em Java para execução e
manipulação de resultados de instruções SQL para qualquer banco de dados
relacional. Para cada Banco de dados há um driver JDBC. Todos os principais
bancos comerciais, como Oracle SQL Server, DB2 e MySQL suportam conexão
JDBC.
www.datascienceacademy.com.br
Fontes de Dados JDBC
www.datascienceacademy.com.br
Tabelas Temporárias
www.datascienceacademy.com.br
Spark SQL
Uma das principais vantagens do Spark SQL é que você não precisa reaprender nada.
Podemos usar o mesmos conceitos de SQL que usamos em bancos de dados
relacionais, extrair dados para o Spark e então nos beneficiarmos do processamento
paralelo e distribuído fornecido pelo framework Spark. O Spark SQL é uma biblioteca
poderosa que Analistas de Negócio e Analistas de Dados podem utilizar para realizar
análise de dados para suas empresas.
www.datascienceacademy.com.br
Obrigado
www.datascienceacademy.com.br