From 8a4f8b11b5b3fadeea2d4aa069628bfe4f90c96c Mon Sep 17 00:00:00 2001
From: "tessa.depaoli" <tessa@Tessaordi>
Date: Mon, 20 May 2024 19:09:18 +0200
Subject: [PATCH] chgt DB et prep hadoop/hdfs

---
 DB_commands.sql | 25 +++++++++++++++++++++----
 sake.txt        | 27 +++++++++++++++++++++++----
 2 files changed, 44 insertions(+), 8 deletions(-)

diff --git a/DB_commands.sql b/DB_commands.sql
index a4a4b72..c3d0af4 100644
--- a/DB_commands.sql
+++ b/DB_commands.sql
@@ -4,7 +4,7 @@ USE myanimelist_db;
 
 
 
-CREATE TABLE IF NOT EXISTS anime_dataset_2023 (
+CREATE EXTERNAL TABLE IF NOT EXISTS anime_dataset_2023 (
     anime_id INT,
     name STRING,
     english_name STRING,
@@ -35,13 +35,13 @@ FIELDS TERMINATED BY ','
 LINES TERMINATED BY '\n'
 STORED AS TEXTFILE;
 
-CREATE TABLE IF NOT EXISTS users_details_2023 (
+CREATE EXTERNAL TABLE IF NOT EXISTS users_details_2023 (
     mal_id INT,
     username STRING,
     gender STRING,
-    birthday STRING,
+    birthday TIMESTAMP,
     location STRING,
-    joined STRING,
+    joined TIMESTAMP,
     days_watched FLOAT,
     mean_score FLOAT,
     watching FLOAT,
@@ -59,6 +59,17 @@ LINES TERMINATED BY '\n'
 STORED AS TEXTFILE;
 
 
+CREATE EXTERNAL TABLE IF NOT EXISTS users_filtered (
+    user_id INT,
+    anime_id INT,
+    rating INT
+)
+ROW FORMAT DELIMITED
+FIELDS TERMINATED BY ','
+LINES TERMINATED BY '\n'
+STORED AS TEXTFILE;
+////////////////////////////////
+
 CREATE TABLE IF NOT EXISTS users_score_2023 (
     user_id INT,
     username STRING,
@@ -71,4 +82,10 @@ FIELDS TERMINATED BY ','
 LINES TERMINATED BY '\n'
 STORED AS TEXTFILE;
 
+//////////////////////////////
+
+SELECT x.table
+FROM users_details_2023 d
+JOIN users_filtered u ON d.user_id = u.user_id
+JOIN anime_dataset_2023 a ON u.anime_id = a.anime_id;
 
diff --git a/sake.txt b/sake.txt
index 3ff1c57..19a6e35 100644
--- a/sake.txt
+++ b/sake.txt
@@ -7,7 +7,7 @@ trouvé data set de 8Go sur des animes, et j'adore les anime donc on est partis
 
 Il y a 6 fichiers : anime-dataset-2023.csv,anime-filtered.csv, final_animedataset.csv,user-filtered.csv,users-details-2023.csv, users-score-2023.csv
 
-Les fichiers filtrés et finales permettent d'être plus rapidement prêts à l'emploi en fonction de l'analyse qu'on compte faire dessus. On préfère prendre les tables non filtrées et on laissera les filtrées de côté.
+Les fichiers filtrés et finales permettent d'être plus rapidement prêts à l'emploi en fonction de l'analyse qu'on compte faire dessus. On préfère prendre les tables anime-dataset-2023, user-score-2023 et user-filtered
 Voici une description de nos tables : 
 ------------------------------------------ "anime-dataset-2023.csv" ----------------------------------------------
 anime_id: Unique ID for each anime.
@@ -63,6 +63,9 @@ Anime Title: The title of the anime.
 rating: The rating given by the user to the anime.
 The User Score Dataset enables various analyses and insights into user interactions with anime. By examining user ratings for different anime titles, you can identify highly-rated and popular anime among users. Additionally, you can explore user preferences and watch patterns for specific anime titles. This dataset also forms the foundation for building recommendation systems based on user ratings, helping to suggest anime that align with individual tastes. Furthermore, you can perform collaborative filtering and similarity analysis to discover patterns of similar user interests. Overall, this dataset offers valuable information for understanding user engagement and preferences on the anime platform.
 
+
+user-filtered contient juste l'id de l'anime, l'id du user qui a mis la note, et la note
+
 Pour mettre le set sur la VM, j'ai dû installer une extension qui me permettait d'obtenir une commande wget (parce qu'il n'y  pas de lien pour le téléchargement sur kaggle), donc la commande a été mise dans un script pour faciliter les choses 
 
 mkdir dataset
@@ -115,6 +118,11 @@ pas de soucis, certains conteneurs (datanode1&2) up depuis 2 semaines, mais je p
 
 On a donc 4 services : hdfs, hive, yarn et spark
 
+
+AVEC COMMANDES PROF : 
+On change le yaml pour ajouter un volume et mettre nos fichiers sur le conteneur : 
+~/dataset/data_selected:/data/hdfs/dataset
+
 On ouvre namenode:
 docker exec -it namenode bash
 
@@ -130,17 +138,28 @@ Si besoin de lister :
 hdfs dfs -l /users/projet
 
 
+/////////////////
+Au final on refait un montage avec un volume ça ira plus vite ahah
+cf rapport Karnas -> utilisation du git
+
+
+On met tout sur le hdfs : 
+hdfs dfs -ls / -> 3 dossiers 
+on se place dans /
+
+hdfs dfs -put /data/hdfs/files/dataset /dataset
+hdfs dfs -chown nnn /dataset
+
+
 vérification ici :
 http://162.19.124.170:9870/
 
 
-Au final on refait un montage avec un volume ça ira plus vite ahah
-cf rapport Karnas
-
 Une fois que les conteneurs sont up et que la config hdfs est faite (en gros qu'on a accès aux fichiers), on passe sur hive
 	C- Construction (aka le vif du sujet)
 
 
+
 V- Analyse représentatives
 	A- Rappel de la stratégie
 
-- 
GitLab