Skip to content

aymen-ba/phenix-challenge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 

Repository files navigation

phenix-challenge

build projet en utilisant la commande maven:

mvn clean compile assembly:single

run projet:

java -Xmx512m -jar target/phenix-challenge-1.0-SNAPSHOT-jar-with-dependencies.jar /home/aymen/data /home/aymen/temp home/aymen/output 20190629

#Arguments:

/home/aymen/data: dossier qui contient les fichiers réferentiels sous nom reference_prod-ID_MAGASIN_YYYYMMDD.data et les fichiers transactions sous nom transactions_YYYYMMDD.data

/home/aymen/temp: dossier pour les fichies de résultats intermédiaires doit être initialement vide pour chaque éxecution de programme

/home/aymen/output: contient les fichiers résultats  

20190629: date de jour qu'on va calculer ses indicateurs et en considérant les 7 derniers jours avant cette date   

#Algorithme:

Date de jour passé en arguments = 20190629

1- Calculer les 100 meilleures ventes/magasin/jour:

- Récupperer tous les ids magasins à partir des noms des fichiers réferentiels en utilisant une expression régulière

- Partitionner le fichier des transactions de jour passé en argument par id magasin en stockant ces fichiers sous nom
  transactions_ID_MAGASIN_20190629.data dans temp/transactions/

- Pour chaque fichier transactions_ID_MAGASIN_20190629.data on fait regroupement par produit et en faisant la somme de
  quantité 

- stocker les résultats de calcul dans output/ sous format top_100_ventes_<ID_MAGASIN>_YYYYMMDD.data   

2- Calculer les 100 meilleures CA/magasin sur les 7 derniers jours:

- calculer les 7 derniers jours avant 20190629

- Récupperer tous les ids magasins à partir des noms des fichiers réferentiels en utilisant une expression régulière

- Partitionner les fichiers des transactions de 7 derniers jour par id magasin en stockant ces fichiers sous nom 
  transactions_ID_MAGASIN_20190629.data dans temp/transactions/

- On fait une jointure entre le ficher transaction par id Magasin et le réferentiel correspendant pour calculer le pix de
  chaque transaction on stocke le resultat dans temp/mappedTransactions/

- on fait le merge des fichiers de même id magasin pour obtenir un fichier temp/merge/
  transactions_ID_MAGASIN_20190629.data.merge qui contient tous les transactions de magasin sur 7 jours

- regrouper chaque fichier temp/merge/transactions_ID_MAGASIN_20190629.data.merge par produit en faisant la somme de 
  prix on stocke le resultat dans output sous le nom top_100_ca_ID_Magasin_yyyyMMdd-J7.data       

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages