Este repositorio contiene la solución a un desafío técnico que implica el procesamiento de datos provenientes de la API de Spotify y la realización de un análisis de calidad de datos sobre el conjunto resultante. El repositorio está organizado de la siguiente manera:
├── src
│ ├── spotify_data_processing.py
│ ├── extra_profilling_report.py
│ ├── report_generator.py
│ ├── utils_io.py
│ └── data_quality_analysis.py
├── input
│ └── input.txt
├── output
│ ├── doc
│ │ ├── data_quality_report.pdf
│ │ └── profilling_report.html
│ └── dataset.csv
├── GenerateReport.bat
├── README.md
├── requirements.txt
└── .gitignore
src/: Contiene los scripts de código fuente.
- spotify_data_processing.py: Script en Python que procesa el archivo JSON descargado de la API de Spotify y lo convierte al formato solicitado (dataset.csv).
- data_quality_analysis.py: Script en Python que realiza el análisis de calidad de datos sobre el conjunto de datos resultante.
- report_generator.py: Script en Python que genera un informe de calidad de datos basado en los tests y comentarios definidos en data_quality_analysis.py.
- utils_io.py: Este módulo provee funciones utilitarias para las operaciones de input/output. Incluye funciones para obtener los datos directamente desde el enlace de Google Drive y para guardar los archivos en el servicio de almacenamiento en la nube de AWS S3.
- extra_profiling_report.py: Script en Python que genera un informe adicional de perfilado de datos, proporcionando estadísticas y visualizaciones sobre el conjunto de datos procesado.
input/: Contiene los archivos que seran analizados.
- input.txt: Este archivo contiene el enlace donde se encuentra almacenado el archivo JSON descargado de la API de Spotify.
output/: Contiene los archivos resultantes de los scripts.
- doc/: Contiene documentos y reportes.
- data_quality_report.pdf: Documento que presenta los resultados del análisis de calidad de datos, identificando las anomalías encontradas y proporcionando justificaciones.
- profilling_report.html (opcional): Este archivo contiene un informe adicional de perfilado de datos, que proporciona estadísticas y visualizaciones detalladas sobre el conjunto de datos procesado. Puede ser generado ejecutando el script extra_profiling_report.py.
- dataset.csv: El conjunto de datos procesado generado por spotify_data_processing.py.
GenerateReport.bat: Archivo por lotes que simplifica la ejecución de las operaciones necesarias para el desafío. Este archivo ejecuta los scripts en el orden correcto y además genera un análisis descriptivo adicional.
Para utilizar GenerateReport.bat, siga los siguientes pasos:
- Asegúrese de tener instaladas las bibliotecas necesarias mencionadas en requirements.txt.
- Abra una ventana de comandos en la ubicación del archivo GenerateReport.bat.
- Ejecute el archivo GenerateReport.bat.
- El archivo ejecutará los siguientes scripts en orden:
- src/spotify_data_processing.py
- src/report_generator.py
- extra_profiling_report.py (opcional)
- Consulte los archivos de salida generados en la carpeta output/ para obtener los resultados.
README.md: Instrucciones detalladas sobre cómo ejecutar el código en cada parte del desafío, así como una descripción de la estructura del repositorio y cómo interpretar los resultados.
.gitignore: Archivo que especifica los archivos y directorios que deben ser ignorados por el control de versiones Git.
- Ejecute src/spotify_data_processing.py proporcionando el archivo JSON input/taylor_swift_spotify.json.
- El script generará el archivo output/dataset.csv.
- Luego de ejecutar src/spotify_data_processing.py. Ejecute src/report_generator.py. Este consultará los test y comentarios definidos en src/data_quality_analysis.py
- Consulte el archivo output/doc/data_quality_report.pdf para obtener detalles sobre las anomalías identificadas.
- Se proporciona un archivo por lotes (archivo GenerateReport.bat) para simplificar la ejecución de las operaciones. Este archivo ejecuta los scripts en el orden correcto y además genera un análisis descriptivo adicional.
- dataset.csv: https://dataqualitychallenge.s3.us-east-2.amazonaws.com/dataset.csv
- data_quality_report.pdf: https://dataqualitychallenge.s3.us-east-2.amazonaws.com/data_quality_report.pdf
- profilling_report.html (opcional): https://dataqualitychallenge.s3.us-east-2.amazonaws.com/profilling_report.html
- Idealmente, los repositorios no deben contener datos de producción, pero en este desafío se incluyen con fines de demostración.
- Hay dos versiones de salida de los datos: una local y otra en la nube de AWS (S3). Puede encontrar el enlace de la versión en la nube en el archivo README.md.
- Asegúrese de tener instaladas las bibliotecas necesarias antes de ejecutar los scripts (Pandas y JSON). Ver requirements.txt
- Consulte el README.md para obtener orientación adicional sobre el repositorio y su uso.