Skip to content

🛠️Ce Projet vise à Développer une application de traitement de données pour gérer des contrats d'entreprise en utilisant Spark et Scala, capable de manipuler des fichiers CSV et JSON.

Notifications You must be signed in to change notification settings

mslouma88/SparkProjet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌟 Projet Spark Scala Sbt sous IntelliJ 🌟

👤 Auteur : Mr MEJRI Salam


📚 Contexte Projet

Le service de vente de l’entreprise LatDior Data cherche un Data Engineer pour mettre en place une application Spark/Scala/SBT pour la gestion des contrats. L’application doit être capable de traiter les types de fichiers suivants:

  • 📁 JSON
  • 📁 CVS
  • 📁 Parquet
  • 📁 ORC
  • 📁 XML

Pour la version 1, vous allez intégrer uniquement le traitement des fichiers CSV et JSON.


🔧 Contraintes Techniques

❖ Vous serez obligé de réaliser les développements avec:

  • 🛠️ IntelliJ IDEA
  • 🛠️ Sbt
  • 🛠️ Scala 2.12.15
  • 🛠️ Java 1.8
  • 🛠️ Spark

❖ Le respect du découpage du code est impératif. Sans le respect du découpage défini, vos développements ne seront pas acceptés.

❖ Un passage de connaissance sera organisé dès votre arrivée.


📂 Découpage du code

sbt.build

📄 Configuration sbt.build

📁 Type CSV

📄 Fichier CSV

📁 Type JSON

📄 Fichier JSON

📝 Présentation des données

  • Exemple de CVS avec séparateur #
  • Exemple de JSON

🛠️ Présentation de l’existant

  • Prepare Appli Args 📄 Args.scala

  • Parser FileConf 📄 ConfigurationParser.scala 📄 FileReaderUsingIOSource.scala

  • Objet CsvReader 📄 Reader.scala 📄 CsvReader.scala

  • JsonReader

    • Coder la classe JsonReader de la même façon que la classe CsvReader mais avec ses propres attributs.
    • La classe héritera le trait Reader.
    • Elle doit contenir une fonction read qui permet de lire un fichier JSON et retourne un DataFrame en se basant sur les attributs de la classe JsonReader provenant du fichier de conf reader_json.json.
  • Objet ServiceVente 📄 ServiceVente.scala

    • def calculTTC(): DataFrame

      • Calcule le TTC => HTT+TVA*HTT, le TTC doit être arrondi à 2 chiffres après la virgule.
      • Supprime la colonne TVA, HTT.
    • Extract_Date_End_Contrat_Ville

      • Créer une nouvelle colonne Date_End_contrat et Ville en utilisant la méthode select from_json et regexp_extract pour extraire YYYY-MM-DD.
      • Supprime la colonne metaData.
    • Contrat_Status

      • Créer une nouvelle colonne Contrat_Status avec "Expired" si le contrat a expiré et sinon "Actif".

🗃️ Main Configuration

  • Type JSON
  • Type CSV

🖥️ MainBatch

📄 MainBatch.scala


Ce projet vise à automatiser la gestion des contrats pour l’entreprise LatDior Data en utilisant les technologies Spark, Scala et SBT, développées sous IntelliJ IDEA.

About

🛠️Ce Projet vise à Développer une application de traitement de données pour gérer des contrats d'entreprise en utilisant Spark et Scala, capable de manipuler des fichiers CSV et JSON.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages