tecnologia | big data | business intelligence | banco de dados

PySpark no Google Colab

Segue abaixo códigos, no formato de notebook (.ipynb), para configurar o PySpark no Google Colab. É necessário executar os códigos de configuração sempre que iniciar a instância do Google Colab.

Caso prefira, segue o link do script no GitHub: pyspark_google_colab.ipynb.

# PySpark no Google Colab
## Instala o Java JDK 8
!apt-get install openjdk-8-jdk-headless -qq > /dev/null
## Download do Apache Spark 3.1.2
!wget -q https://downloads.apache.org/spark/spark-3.1.2/spark-3.1.2-bin-hadoop3.2.tgz
## Descompacta o Apache Spark 3.1.2
!tar xf spark-3.1.2-bin-hadoop3.2.tgz
## Remove o arquivo compactado do Apache Spark 3.1.2
!rm -rf spark-3.1.2-bin-hadoop3.2.tgz
## Instala os módulos FindSpark e PySpark
!pip install -q findspark
!pip install -q pyspark
# Configurando o ambiente para uso do PySpark
## Importa os módulos
import os
import findspark
from pyspark.sql import SparkSession
from pyspark.sql import functions as F
## Define as variáveis ambientes Home do Java e Spark
os.environ["JAVA_HOME"] = "/usr/lib/jvm/java-8-openjdk-amd64"
os.environ["SPARK_HOME"] = "/content/spark-3.1.2-bin-hadoop3.2"
## Inicia o FindSpark e cria a instância da sessão Spark
findspark.init()
spark = SparkSession.builder.master("local[*]").getOrCreate()
# PySpark pronto para uso, divirta-se!
dataset = spark.read.format("json") \
.option("multiLine",True) \
.load("sample_data/anscombe.json")
dataset.columns
dataset.show(10)


Data publicação: 21:13 25/11/2021

PySpark - Sintaxes

Nesta publicação irei mencionar brevemente alguns comandos/sintaxes úteis do Spark utilizando a linguagem Python.


Dataframe.show():

Exibe as primeiras n linhas na tela.


Parâmetros:
n: números de linhas a exibir.
truncate: se informado True, irá cortar as strings com mais de 20 caracteres. Se um número maior que 1 for informado, strings maiores que o número informado serão cortadas e alinnhadas a direita.
vertical: se informado True, as linhas serão exibidas na vertical (uma linha por valor de coluna).


Exemplos:
df.show()
df.show(truncate=3)
df.show(vertical=True)
df.show(n=20, truncate=True, vertical=False)


Dataframe.select():

Retorna um novo dataframe de acordo com as expressões que foram determinadas.


Exemplos:
df.select('*').collect()
df.select('name', 'age').collect()
df.select(df.name, (df.age + 10).alias('age')).collect()


Dataframe.Filter():

Filtra linhas usando determinadas condições.
Obs: where() é um apelido do filter().


Exemplos:
df.filter(df.age > 3).collect()
df.where(df.age == 2).collect()
df.filter("age > 3").collect()
df.where("age = 2").collect()


Dataframe.distinct():

Retorna um novo dataframe contendo as linhas distintas no dataframe.


Exemplos:
df.distinct().count()


Dataframe.withColumn():

Retorna um novo dataframe adicionado a coluna ou renomeando a coluna que possui o mesmo nome.


Exemplo:
df.withColumn('age2', df.age + 2).collect()


Dataframe.printSchema():

Exibe a estrutura do dataframe no formato de árvore.


Sintaxe:
df.printSchema()


Dataframe.columns:

Retorna todas as colunas como uma lista.


Sintaxe:
df.columns


Dataframe.count():

Retorna o número de linhas do dataframe.


Sintaxe:
df.count()


Dataframe.describe():

Computa as estatísticas para colunas númericas e string.


Exemplos:
df.describe().show()
df.describe(['age']).show()


Dataframe.summary():

Computa statisticas especificas para colunas númericas e strings.


Exemplos:
df.summary().show()
df.summary("count", "min", "25%", "75%", "max").show()
df.select("age", "name").summary("count").show()


Dataframe.Collect():

Retorna todos os registros como uma lista de linha.


Sintaxe:
df.collect()


Dataframe.selectExpr():

Retorna um novo dataframe de acordo com as expressões SQL que foram determinadas.


Exemplo:
df.selectExpr("age * 2", "abs(age)").collect()


Dataframe.persist():

Determina o nível de armazenamento para persistir o conteúdo do dataframe durante as operações após ser computado pela primeira vez.


Sintaxe:
df.persist()


Dataframe.unpersist():

Marca o dataframe como não persistente, removendo todos os blocos da memória e disco.


Sintaxe:
df.unpersist(blocking=False)


Data publicação: 22:29 07/07/2021

Banco de Dados - Junções (JOIN)

As tabelas podem ser unidas de diversas maneiras. A técnica mais comum é a chamada de junção equivalente (INNER JOIN). Uma linha é associada a uma ou mais linhas em outras tabelas com base na igualdade dos valores ou expressões da coluna.

Tipos de junções (JOINS):
- INNER JOIN
- LEFT JOIN
- RIGHT JOIN
- FULL JOIN
- CROSS JOIN

Exemplos:
SELECT f.nm_funcionario, d.nm_departamento
FROM tb_funcionarios f
INNER JOIN tb_departamentos d
ON f.id_departamento = d.id_departamento;








Data publicação: 18:26 29/03/2021
Perfil
Olá jovem Padawan, seja bem vindo! Este site foi criado com o intuito de compartilhar um pouco de conhecimento de Tecnologia da Informação, Big Data, Banco de Dados e Business Intelligence.

GitHub  Linkedin  Youtube

"Se você vem da cidade ou do campo, seu sucesso será determinado pela sua própria confiança e coragem". (Michelle Obama)


Leandro Sacramento, Todos os direitos reservados - 2012 - 2021