From (XML/JSON) to Delta table

Ahmed
1 mars 2024
Tutoriel d’une transformation de donnée semi structurée comme l’XML et le JSON en donné structurée en utilisant la plateforme Databricks
Image bleue avec des formes géométriques

Contexte

Nous sommes souvent amenés à travailler avec beaucoup de sources de données semi structurées. XML et Json font partie des formats les plus utilisés surtout dans le services bancaires, magasins de vente au détail en ligne et intégration de systèmes industriels

Dans notre contexte nous recevons un fichier quotidien XML qui contient des données sur les clients, un Json qui contient la dimension pays et nous essaierons de les transformer en tables delta pour pouvoir l’exploiter via SQL et mettre le résultat final dans un datamart final

Structure du fichier XML

exemple structure

Structure du fichier Json

exemple structure

Installer la bibliothèque XML

Aucune bibliothèque XML native n'est disponible avec Databricks lorsque nous créons un espace de travail. Nous devons en installer une. Voici les instructions à suivre pour installer la bibliothèque com.databricks:spark-xml

capture vidéo

Access Azure Data Lake Storage Gen2

Vous pouvez accéder en toute sécurité aux données d'un compte de stockage Azure à l'aide d'OAuth 2.0 avec un principal de service d'application Azure Active Directory (Azure AD) pour l'authentification ; consultez Configurer l'accès au stockage Azure avec un principal de service Azure Active Directory.

capture d'écran

  1. <client-id> with the Application (client) ID for the Azure Active  
  2. <scope> with the Databricks secret scope name.  
  3. <key> with the name of the key containing the client secret.  
  4. <storage-account> with the name of the Azure storage account

Lecture des fichiers XML et Json

En exploitant les fichiers avec le format Texte, ça nous renvoie le contenu des fichiers avec le format non structuré

XML

capture d'écran xml

JSON

capture d'écran json

Création de la table delta contacts à partir d’un XML

capture d'écran

Notre première table est la table contact, elle est alimentée par notre fichier XML ,avant de créer le

Data-frame qui va alimenter la table finale, on commence par définir la structure s de notre output,

ensuite on crée le df qui nous permet via les paramètres mentionnés dans le code de « flatten » le dataset

  • S = structure du jeu de donnée de sortie
  • rooTag = c’est l’élément parent de tous les élément du fichier XML
  • rowTag = c’est l’élément équivalent d’une ligne dans ta table finale

En Scala

Une des spécificités de Databricks est sa capacité de supporter plusieurs langages comme Scala aussi, on vous met à dispo la même manipulation de la création d’un data-frame à partir d’un xml en scala.

capture d'écran

Rajout de colonnes

Dans notre use case, on aimerait bien créer un champ prénom et un champ nom à partir de la colonne name

On va utiliser la fonction split

Pour l’utiliser il faut importer pyspark.sql.functions

capture d'écran

Création de la table Country à partir d’un JSON

capture d'écran

Création de la table finale en SQL

capture d'écran

Conclusion

Le but de cet article c’est de démontrer la capacité et la simplicité de Databricks a traiter des données semi structurées, L’approche ELT que la plateforme propose pour faire de la data transformation permet de centraliser les différentes étapes (formatage, Conversion , jointure et rajout de donnée) dans un seul notebook et un seul dataflow ,la plateforme supporte plusieurs langages aussi comme python,Scal et SQL ce qui fait qu’elle est considérée comme la plateforme la plus collaborative du marché

Ce datflow réalisé mettra à dispo pour nos data analysts un datamart pour leur permettre de créer des Dashboards pour les équipes marketing sur la répartition des clients en France.

Grâce à la disponibilité du connecteur databricks dans tous les outils de reporting et de dataviz du marché comme Powerbi et Tableau, ils peuvent se connecter facilement au dataset réalisé

Finalement Databricks nous a permis de passer d’un état ou la donnée était obsolète à un état très business orienté

capture vidéo

Articles similaires

Aucun article

career block background image

Vous souhaitez nous rejoindre ?

Rendez-vous sur notre site carrière pour accéder à toutes nos offres

Microsoft Partner
Databricks Partner
Great Place To Work
Microsoft Partner
Databricks Partner
Great Place To Work
Microsoft Partner
Databricks Partner
Great Place To Work
Microsoft Partner
Databricks Partner
Great Place To Work