Introduction In the first part of our series, we explored the basics of ETL (Extract, Transform, Load) pipelines, understanding what they are and how they function. In this part, we're delving straight into the more technical aspects of building an E...

Markdown supported · ⌘↵ to post
What a lovely stuff you've done. Well done!! I tried it and was able to download the genres_v2.csv.zip.
Please, do you mind checking the create_tables.py. it appears it's not creating the table in the spotify_genre database. The data cleaning is happening but loading it to the database is not happening, it returns an error, cursor.execute(statement, parameters)
sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) can't adapt type 'dict'
[SQL: INSERT INTO genre_raw_all (danceability, energy, key, loudness, mode, acousticness, instrumentalness, liveness, valence, tempo, type, id, uri, track_href, analysis_url, duration_ms, time_signature, genre) VALUES (%(danceability__0)s, %(energy__0)s, % ... 13612 characters truncated ... (track_href__42)s, %(analysis_url__42)s, %(duration_ms__42)s, %(time_signature__42)s, %(genre__42)s)]....
Also, the data prints to the screen (in the command line) during the loading process, which is not a good practice, due to security and stuff.
Furthermore, the architecture is not as specified in the blog. this is because the raw/data folder is not part of it. After all, the codes create it when executed. The code won't run when the raw/data is manually created as you suggested. The folder, pipeline_architecture is redundant. I don't see what it's doing.
Lastly, it's good to point your users where to get the sample data you used. I got mine at Kaggle (wanted to add the link but couldn't if not, I won't be able to post this comment.)
Thank you! 👏 👏
Emerald Mclaniyi
Data Scientist
HI Chinedu Ethelbert can't see your full comment. I can only see the preview in my notification. Can you reshare, please?