An authentic, industrial-grade Big Data pipeline built with Scala 2.12, Apache Spark 3.x, and a strict adherence to Pure Functional Programming (FP). This project leverages a custom-built hybrid cloud to process 100GB+ of NYC Taxi data.
Every line of code in this repository is governed by:
- Immutability Only: All fields use immutable values; state changes are handled via copy-on-write.
- No Nulls: Total elimination of null pointer risks using functional types.
- Total Functions: Every function returns a value;
ifstatements always include anelse. - Separation of Concerns: Case Classes (Data) are decoupled from Pure Functions (Behavior).
We utilize a Hardware-Software Co-design to optimize
- The Lakehouse (Master & Storage): Dell Latitude E5570
- Specs: Intel i7 | 24GB RAM | 1TB SSD
- Role: Permanent storage node and master coordinator.
- The Engine (Compute Worker): WSL2 Ubuntu 22.04 LTS
- Specs: 20 Cores | 60GB RAM | NVIDIA RTX 3060 (12GB VRAM)
- Role: GPU-accelerated Spark execution and high-concurrency transformations.
- The Cockpit: Apache Zeppelin (Port:
8090) with GPU-integrated interpreters.
- 📜 Master Project Syllabus - Detailed roadmap & hardware benchmarks.
- 📄 Scott Baker's Resume - Data Engineering & Systems Architecture Profile.
📁 documentation/: Detailed Big O analysis and evolution retrospectives.📁 notebooks/: Zeppelin exports for Bronze, Silver, and Gold layers.
- Throughput: ~19.6 Million records processed in 2.85 seconds.
- Engine Power: 50GB Spark Executor memory allocation on 20 logic cores.
To start the environment on the WSL box, use the locked-in daemon command:
export ZEPPELIN_ADDR="172.19.213.155" && export ZEPPELIN_PORT="8090" && /opt/zeppelin/bin/zeppelin-daemon.sh start