How senaye2003/soccer-spark-analysis works
This repository is a PySpark soccer-event analysis project. Its main workflow loads StatsBomb match/event data, shapes it into Spark datasets, persists events and match metadata, then runs analytical queries; separate entry points provide shot-to-goal ML and a simulated Structured Streaming demonstration. The graph reflects the README’s documented analytical scope, while the excerpts show implementation details primarily for ingestion, queries, ML, and streaming; documented but unimplemented capabilities are shown without speculative call edges.
Main entry points: transformations.py Query Runner · ml_pipeline.py ML Runner · streaming.py Streaming Runner · ingestion.py Ingestion Job
Components 23
Ingestion
- Ingestion Job
src/ingestion.py - Event Dataset
src/ingestion.py - Match Dimension
src/ingestion.py - Ingestion EDA
src/ingestion.py
Batch Analysis
- Query Runner
src/transformations.py - Shot Efficiency
src/transformations.py - Team Comparison
src/transformations.py - Passing Analysis
src/transformations.py - Event Trends
src/transformations.py - Match Goal Join
src/transformations.py - Passing Networks
src - Pressure Analysis
src
Shot Modeling
- ML Runner
src/ml_pipeline.py - Shot Features
src/ml_pipeline.py - Goal Classifier
src/ml_pipeline.py - Model Metrics
src/ml_pipeline.py - Player Role Clustering
src
Streaming Demo
- Streaming Runner
src/streaming.py - Simulated Feed
src/streaming.py - Team Aggregation
src/streaming.py - Console Output
src/streaming.py
Other components
- Analyst
- StatsBomb Open Data
Connections 26
- Analyst → Ingestion Job: runs
README.md - StatsBomb Open Data → Ingestion Job: provides data
src/ingestion.py - Ingestion Job → Ingestion EDA: runs
src/ingestion.py - Ingestion Job → Event Dataset: writes
src/ingestion.py - Ingestion Job → Match Dimension: writes
src/ingestion.py - Analyst → Query Runner: runs
README.md - Query Runner → Event Dataset: reads
src/transformations.py - Query Runner → Match Dimension: reads
src/transformations.py - Query Runner → Shot Efficiency: runs
src/transformations.py - Query Runner → Team Comparison: runs
src/transformations.py - Query Runner → Passing Analysis: runs
src/transformations.py - Query Runner → Event Trends: runs
src/transformations.py - Query Runner → Match Goal Join: runs
src/transformations.py - Analyst → ML Runner: runs
- ML Runner → Event Dataset: reads
src/ml_pipeline.py - ML Runner → Shot Features: derives
src/ml_pipeline.py - ML Runner → Goal Classifier: trains
src/ml_pipeline.py - ML Runner → Model Metrics: reports
src/ml_pipeline.py - Analyst → Streaming Runner: runs
- Streaming Runner → Event Dataset: reads
src/streaming.py - Streaming Runner → Simulated Feed: writes
src/streaming.py - Streaming Runner → Team Aggregation: aggregates
src/streaming.py - Streaming Runner → Console Output: writes
src/streaming.py - Analyst → Passing Networks: seeks
- Analyst → Pressure Analysis: seeks
- Analyst → Player Role Clustering: seeks