logo blog it atawiz
chevron up
11 minutes de lecture
From (XML/JSON) to Delta table
Ahmed - il y a un an
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

Table of contents

Contexte

Structure du fichier XML

Structure du fichier Json

Installer la bibliothèque XML

Access Azure Data Lake Storage Gen2

Lecture des fichiers XML et Json

XML

JSON

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

En Scala

Rajout de colonnes

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

Création de la table finale en SQL

Conclusion

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

fdt_1.png

Structure du fichier Json

fdt_2.png

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

db_3.gif

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.

fdt_4.png

• 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

fdt_5.png

JSON

fdt_6.png

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

fdt_7.png

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 sacala

fdt_8.png

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

fdt_9.png

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

fdt_10.png

Création de la table finale en SQL

fdt_11.png

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é

db_12.gif