-
Make the entrypoint script executable:
git update-index --chmod=+x docker-entrypoint.sh
# On Linux/Mac chmod +x docker-entrypoint.sh -
Start the Spark cluster:
docker compose up -d spark-master spark-worker
-
Run the tasks using the client container:
Download Task
docker compose run --rm client spark-submit --master spark://spark-master:7077 --deploy-mode client src/lab2/main.py --task download --data-path /app/data/ecommerce.parquet
EDA Task
docker compose run --rm client spark-submit --master spark://spark-master:7077 --deploy-mode client src/lab2/main.py --task eda --data-path /app/data/ecommerce.parquet
Analytics Task
docker compose run --rm client spark-submit --master spark://spark-master:7077 --deploy-mode client src/lab2/main.py --task analytics --data-path /app/data/ecommerce.parquet --output-dir /app/results
All Tasks
docker compose run --rm client spark-submit --master spark://spark-master:7077 --deploy-mode client src/lab2/main.py --task all --data-path /app/data/ecommerce.parquet --output-dir /app/results
-
Stop the cluster when finished:
docker compose down
-
Ensure the Spark cluster is running:
docker compose up -d spark-master spark-worker
-
Launch the TF analysis job from the client container (saves results to
/app/results/lab3):docker compose run --rm client spark-submit --master spark://spark-master:7077 --deploy-mode client src/lab3/main.py --input /app/data/AllCombined.txt --top 10 --min-length 4 --output /app/results/lab3/top_tf_words --format csv
-
Stop the cluster when finished:
docker compose down
- Kaggle configuration directory is set to
/tmp/kaggle_home. - Output files will be saved to the local file system.
If you encounter issues with kagglehub, provide Kaggle API credentials:
-
Create a directory for Kaggle credentials in container:
docker compose exec client mkdir -p /tmp/kaggle_home
-
Create a kaggle.json with credentials:
docker compose exec client bash -c 'echo "{\"username\":\"your-kaggle-username\",\"key\":\"your-kaggle-api-key\"}" > /tmp/kaggle_home/kaggle.json'
-
Set permissions:
docker compose exec client chmod 600 /tmp/kaggle_home/kaggle.json