Skip to content
Snippets Groups Projects

Update docs/source/pages/Apache Spark/spark.md

Merged Guilherme Carbonari Boneti requested to merge gcb19-main-patch-55034 into main
1 file
+ 78
0
Compare changes
  • Side-by-side
  • Inline
# Apache Spark
O Apache Spark é um mecanismo para executar engenharia de dados, ciência de dados e aprendizado de máquina em máquinas de nó único ou clusters. Spark provê uma interface para programação de clusters com paralelismo e tolerância a falhas.
## Características principais:
- **Dados em lote/transmissão:**
Unifica o processamento dos dados em lotes e transmissão em tempo real, utilizando: Python, SQL, Scala, Java ou R.
- **Análise SQL:**
Executa consultas ANSI SQL rápidas e distribuídas para criação de dashboards e relatórios.
- **Ciência de dados em escala:**
Realiza Análise Exploratória de Dados (EDA) em dados em escala de petabytes sem precisar recorrer à amostragem.
- **Aprendizado de Máquina:**
Treinar algoritmos de aprendizado de máquina em um laptop e usar o mesmo código para escalar para clusters tolerantes a falhas com milhares de máquinas.
## Links
[1] Descrição:
- <https://spark.apache.org/>
- <https://pt.wikipedia.org/wiki/Apache_Spark>
[2] Instalação: <https://spark.apache.org/downloads.html>
[3] Repositório: <https://github.com/apache/spark>
[4] Documentação: <https://spark.apache.org/docs/latest/>
## Dependências
[1] Apache Spark 3.5.1
[2] Python
## Instalação e Uso
### Python
$ pip install pyspark
$ pyspark
$ docker run -it --rm spark:python3 /opt/spark/bin/pyspark
##### QuickStart
df = spark.read.json("logs.json")
df.where("age > 21").select("name.first").show()
##### Machine Learning
# Every record contains a label and feature vector
df = spark.createDataFrame(data, ["label", "features"])
# Split the data into train/test datasets
train_df, test_df = df.randomSplit([.80, .20], seed=42)
# Set hyperparameters for the algorithm
rf = RandomForestRegressor(numTrees=100)
# Fit the model to the training data
model = rf.fit(train_df)
# Generate predictions on the test dataset.
model.transform(test_df).show()
##### Analytics e Data Science
df = spark.read.csv("accounts.csv", header=True)
# Select subset of features and filter for balance > 0
filtered_df = df.select("AccountBalance", "CountOfDependents").filter("AccountBalance > 0")
# Generate summary statistics
filtered_df.summary().show()
### SQL
$ docker run -it --rm spark /opt/spark/bin/spark-sql
spark-sql>
##### QuickStart
SELECT
name.first AS first_name,
name.last AS last_name,
age
FROM json.`logs.json`
WHERE age > 21;
Loading