Coleção prática e abrangente de notebooks Jupyter para aprender Machine Learning com Apache Spark, usando PySpark e as APIs de Spark ML / MLlib (DataFrames). O repositório inclui notebooks e datasets para executar os exemplos ponta a ponta.
- Importação e leitura de dados (CSV, JSON, ORC, Parquet, LIBSVM)
- Engenharia de atributos (VectorAssembler, encoders, imputação, escalas, discretização)
- Modelos:
- Regressão (Linear/Generalized)
- Classificação (Logistic, Naive Bayes, MLP, Random Forest)
- Clusterização (KMeans, Bisecting KMeans)
- Associação (FPGrowth)
- Pipelines e tuning (CrossValidation / TrainValidationSplit)
- Notebooks:
*.ipynb(ex.:1.Dataimport.ipynb,21.LinearRegression.ipynb,30.Pipelines.ipynb, etc.) - Datasets: arquivos como
Carros.csv,Churn.csv,iris.csv,iris_libsvm.txt,despachantes.*,Transacoes.txt, etc.
- Python 3.9+ (recomendado 3.10/3.11)
- Java 8/11/17 (Spark precisa de JVM)
- (Opcional) Conda/Miniconda para isolar ambiente
Conda
conda create -n sparkml python=3.10 -y
conda activate sparkmlvenv
python -m venv .venv
# Windows:
.venv\Scripts\activate
# Linux/Mac:
source .venv/bin/activatePara rodar os notebooks com Spark em modo local:
pip install jupyter pysparkSe algum notebook usar pandas/matplotlib:
pip install pandas matplotlibjupyter notebookAbra o notebook desejado e execute as células.
1.Dataimport.ipynb2.Libsvm.ipynb
3.VectorAssembler.ipynb4.PCA.ipynb5.Binarization.ipynb6.StringIndexer.ipynb7.IndexToString.ipynb8.OneHotEncoder.ipynb9.Imputer.ipynb10.PolynomialExpansion.ipynb11.Normalizer.ipynb12.StandardScaler.ipynb13.RobustScaler.ipynb14.MinMaxScaler.ipynb15.MaxAbsScaler.ipynb16.QuantileDiscretizer.ipynb17.RFormula.ipynb18.VectorSlicer.ipynb19.ChiSqSelector.ipynb20.UnivariateFeatureSelector.ipynb
21.LinearRegression.ipynb22.GeneralizedRegression.ipynb23.RandomForest.ipynb24.Logistic.ipynb25.Naive.ipynb26.MultilayerPerceptron.ipynb27.Kmeans.ipynb28.HierarchicalBisecting.ipynb29.FPGrowth.ipynb
30.Pipelines.ipynb31.TunningCross.ipynb32.TunningTrain.ipynb
- Erro de Java/JVM: confirme
java -versione use Java 11/17 (recomendado). - Spark lento: evite
show()em datasets grandes; reduza logs quando necessário. - Memória: ajuste a memória do driver em notebooks mais pesados, por exemplo:
SparkSession.builder.config("spark.driver.memory", "2g")
Se você pretende uso amplo (portfólio/colaboração), recomendo adicionar uma licença (ex.: MIT). Se preferir uso apenas educacional, explicite isso aqui.
Fernando Amaral — Data/AI Engineer & Instructor