# mahmoudparsian/data-algorithms-book

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/mahmoudparsian-data-algorithms-book).**

_How this analysis was created: the description and tags below were written by an AI model that read this project's README and public documentation pages; stars, license and language come straight from the GitHub API. The model does not read the source code._

1,081 stars · 654 forks · Java · NOASSERTION

## Links

- GitHub: https://github.com/mahmoudparsian/data-algorithms-book
- Homepage: http://mapreduce4hackers.com
- awesome-repositories: https://awesome-repositories.com/repository/mahmoudparsian-data-algorithms-book.md

## Topics

`apache-hadoop` `apache-spark` `data-algorithms` `design-patterns` `distributed-algorithms` `distributed-computing` `hadoop-mapreduce` `java` `machine-learning` `mappers` `mapreduce` `partitioning` `pyspark` `python` `reducers` `scala`

## Description

This repository is a collection of reference implementations and distributed data processing algorithms implemented in Java and Scala for cluster computing frameworks. It provides computational recipes for solving complex data processing problems, including large-scale dataset joins, aggregations, and word count tasks. The implementations cover both MapReduce paradigms and Apache Spark integrations, enabling programmatic job submission and execution across distributed node infrastructures.

The collection includes specialized utilities for statistical analysis and text processing, such as data correlation computation, rank products calculation, character frequency analysis, and optimized in-mapper accumulation patterns. It also encompasses machine learning capabilities, featuring training modules for logistic regression classification, Naive Bayes text classification, and unsupervised data clustering algorithms.

## Tags

### Data & Databases

- [Algorithm Implementations](https://awesome-repositories.com/f/data-databases/apache-spark-pipelines/algorithm-implementations.md) — Provides custom data processing, statistical analysis, and machine learning algorithms implemented using Apache Spark and distributed engines.
- [Apache Spark Analytics](https://awesome-repositories.com/f/data-databases/data-analysis-visualization/analytical-platforms-engines/data-analytics-engines/apache-spark-analytics.md) — Provides a comprehensive collection of distributed data processing algorithms and statistical methods implemented for Apache Spark.
- [Big Data Processing](https://awesome-repositories.com/f/data-databases/big-data-processing.md) — Implements distributed algorithms and data processing jobs to handle massive datasets across cluster computing environments efficiently.
- [Distributed Data Processing Frameworks](https://awesome-repositories.com/f/data-databases/distributed-data-processing-frameworks.md) — Executes distributed data processing algorithms using cluster computing frameworks to solve complex computational problems across large datasets. ([source](https://github.com/mahmoudparsian/data-algorithms-book/blob/master/src/main/scala/org/dataalgorithms))
- [Large Dataset Processors](https://awesome-repositories.com/f/data-databases/large-scale-dataset-management/large-dataset-processors.md) — Implements distributed algorithms for common analytical tasks like word counts, joins, and aggregations across large datasets. ([source](https://github.com/mahmoudparsian/data-algorithms-book/blob/master/misc/bonus-chapters.md))
- [MapReduce Processing Engines](https://awesome-repositories.com/f/data-databases/mapreduce-processing-engines.md) — Offers reference implementations for distributed batch data processing and aggregations using the MapReduce paradigm.
- [Memory-Efficient Big Data Algorithms](https://awesome-repositories.com/f/data-databases/memory-efficient-big-data-algorithms.md) — Implements efficient computational recipes and parallel algorithms for processing massive datasets across cluster architectures.
- [Apache Spark Connectors](https://awesome-repositories.com/f/data-databases/big-data-processing/apache-spark-connectors.md) — Allows applications to programmatically submit Spark big data processing jobs directly without relying on external shell scripts or command-line tools. ([source](https://github.com/mahmoudparsian/data-algorithms-book/blob/master/misc/how-to-submit-spark-job-from-java-code.md))
- [Data Analytics Engines](https://awesome-repositories.com/f/data-databases/data-analysis-visualization/analytical-platforms-engines/data-analytics-engines.md) — Applies statistical methods, clustering, classification, and recommendation algorithms to extract patterns and insights from large-scale data. ([source](https://github.com/mahmoudparsian/data-algorithms-book/blob/master/src/main/scala/org/dataalgorithms))

### Artificial Intelligence & ML

- [Clustering Algorithms](https://awesome-repositories.com/f/artificial-intelligence-ml/clustering-algorithms.md) — Implements unsupervised clustering algorithms to group large datasets and discover hidden structures. ([source](https://github.com/mahmoudparsian/data-algorithms-book/blob/master/src/main/java/org/dataalgorithms/machinelearning))
- [Logistic Regression Models](https://awesome-repositories.com/f/artificial-intelligence-ml/logistic-regression-models.md) — Features training modules and classification algorithms for predicting binary outcomes on distributed datasets. ([source](https://github.com/mahmoudparsian/data-algorithms-book/blob/master/src/main/java/org/dataalgorithms/machinelearning))
- [Distributed Training](https://awesome-repositories.com/f/artificial-intelligence-ml/machine-learning/infrastructure/machine-learning-training/distributed-training.md) — Trains classification and clustering models on large datasets using parallel processing frameworks for predictive analysis.
- [Distributed Machine Learning Integrators](https://awesome-repositories.com/f/artificial-intelligence-ml/machine-learning/infrastructure/model-training-and-tuning/distributed-and-scaling-strategies/distributed-learning/distributed-machine-learning-integrators.md) — Executes iterative statistical models and classification algorithms across partitioned cluster data to uncover patterns and predict outcomes.
- [Naive Bayes Classifiers](https://awesome-repositories.com/f/artificial-intelligence-ml/naive-bayes-classifiers.md) — Includes probabilistic text classification algorithms for categorizing documents into predefined classes. ([source](https://github.com/mahmoudparsian/data-algorithms-book/blob/master/src/main/java/org/dataalgorithms/machinelearning))

### Part of an Awesome List

- [Big Data and Analytics](https://awesome-repositories.com/f/awesome-lists/data/big-data-and-analytics.md) — Applies statistical methods, correlation analysis, and data rankings across large-scale structured and unstructured datasets.

### DevOps & Infrastructure

- [Cluster Resource Schedulers](https://awesome-repositories.com/f/devops-infrastructure/cluster-resource-schedulers.md) — Submits and schedules computational workloads dynamically across distributed node infrastructures using cluster execution engines and resource allocators.
- [Distributed Job Execution](https://awesome-repositories.com/f/devops-infrastructure/distributed-job-execution.md) — Submits large-scale data processing programs to distributed cluster environments using cluster resource managers and execution engines. ([source](https://github.com/mahmoudparsian/data-algorithms-book/blob/master/misc/run_spark/README.md))
- [Remote Compute Job Submission](https://awesome-repositories.com/f/devops-infrastructure/remote-compute-job-submission.md) — Enables launching and executing computing jobs directly from application code or via command-line interfaces. ([source](https://github.com/mahmoudparsian/data-algorithms-book/blob/master/README.md))
