Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
Gautier Poupeau
gautier.poupeau@gmail.com
@lespetitescases
http://www.lespetitescases.net
Réalisation d’un mashup
de donné...
Visualisation du « flow »
RÉCUPÉRER DES DONNÉES DE
WIKIDATA
PRÉSENTATION DE WIKIDATA
Les limites de Dbpedia
• Données structurées complexes à modifier
dans les Wikipedias
• Délai d’attente pour disposer de l...
Wikidata
• Projet officiel de la Wikimedia
Foundation
• Développée à partir de 2012 à
l’initiative de l’association
Wikime...
La gestion des liens interlangues
Ancien système Nouveau système
Gestion disséminée (données
dispersées sur 280 Wikipédias...
La gestion des liens interlangues
[[af:Victor Hugo]]
[[als:Victor Hugo]]
[[an:Victor Hugo]]
[[ar:]]
[[arz:]]
[[ast:Victor ...
La gestion des infobox
Ancien système Nouveau système
données dispersées (280 Wikipédias) données centralisées
mise à jour...
La gestion des infobox
{{Infobox Conjoint politique
| nom = Berthe Faure
| image = Faure.1212301544-
1-.jpg
| légende = De...
STRUCTURE DES DONNÉES DE
WIKIDATA
Structure des données de Wikidata
Lien avec l’article dans Wikipedia
Etiquettes, description et nature
Lien avec une autre entité
CONSTRUIRE UNE REQUÊTE
SPARQL AVEC WIKIDATA
Explorer les données disponibles
pour le type d’entité interrogée
Repérer les codes qui vont servir à
construire votre requête
Repérer les codes qui vont servir à
construire votre requête
Repérer les codes qui vont servir à
construire votre requête
Repérer les codes qui vont servir à
construire votre requête
Résumé des ressources intéressantes
• Etiquette de l’entité
• Alias de l’entité
• Nature de l’entité : P31
• Date de publi...
et les URIS correspondantes
• http://www.w3.org/2000/01/rdf-schema#label
• http://www.w3.org/2004/02/skos/core#altLabel
• ...
Attention à la hiérarchie des natures
Ce n’est pas la nature « Film » mais ses sous-classes…
Attention à la hiérarchie des natures
Dans ce cas, il s’agit d’une sous-classe directe de film
mais la hiérarchie peut êtr...
Construire la requête SPARQL
SPARQL endpoint de Wikidata : https://query.wikidata.org/
Zone de saisie de la requête SPARQL...
Ajout des préfixes les plus communs
pour construire une requête
Ajout des préfixes les plus communs
pour construire une requête
Chercher les entités d’une
nature précise
Chercher les entités d’une
nature précise
Nombre de résultats : 191 153 résultats pour des entités de
nature « film » mais...
Chercher les entités d’une
nature précise et ses sous-classes
Cette ligne signifie : « les entités d’un type dont la super...
Chercher les entités d’une
nature précise et ses sous-classes
Nombre de résultats : 435 030 résultats pour des entités de
...
Ajout de la fonction « blazegraph » pour
récupérer les étiquettes des ressources
Indication de la langue des étiquettes à ...
Ajout de la fonction « blazegraph » pour
récupérer les étiquettes des ressources
La requête échoue car elle est trop large
Limiter le nombre de résultats
Récupérer la date de publication
Filtrer avec la date de publication
Filtrer avec la date de publication
La requête échoue car le filtre n’est pas assez restreint
Filtrer avec la date de publication
Récupérer uniquement l’année
Récupérer l’identifiant Imdb
Récupérer les étiquettes
alternatives éventuelles
CHARGER LES DONNÉES DANS
DATAIKU
Ajouter un jeu de données depuis une URL
Saisir l’URL
Récupérer l’URL de la requête SPARQL
Construction de l’URL de requêtage
URL du web service
https://query.wikidata.org/bigdata/namespace/wdq/sparql
Format de la...
Astuce : service en ligne pour encoder une
chaîne pour une URL
http://meyerweb.com/eric/tools/dencoder/
Astuce : service en ligne pour encoder une
chaîne pour une URL
http://meyerweb.com/eric/tools/dencoder/
Saisir l’URL construit
Télécharger le jeu de données
Echec du téléchargement 
relancer le
Téléchargement effectué
Configurer le jeu de données
Par défaut, Dataiku choisit le type CSV, il n’arrive donc pas à
analyser les données.
Sélectionner le type « json »
Renseigner le jsonPath de boucle
La prévisualisation des données
s’affiche
Exploration du jeu de données
Liste des jeux de données chargés
Reproduire la procédure pour charger les films
entre 2000 et 2007
Visualisation du « flow »
Empilement des deux jeux de données
Sélection du premier jeu de données
Sélection du second jeu de données
Saisie du nom du nouveau jeu de données
Interface pour empiler les jeux de données
Mise à jour du schéma
Visualisation du « flow »
PRÉPARER LE 1ER
JEU DE DONNÉES
AVANT SA MISE EN RELATION
Interface de préparation des données
AJOUTER UNE VALEUR FIXE DANS
DES CELLULES VIDES
Résultat d’une jointure pour la
colonne « Premier Film ? »
Une valeur n’est présente que
dans les lignes jointes
Sélectionner le traitement
« Fill empty cells with fixed value »
Configuration du traitement
Résultat du traitement
SIMPLIFIER UN TEXTE POUR SA
COMPARAISON
Sélectionner le traitement
« Simplify text »
Créer une colonne avec le texte simplifié
Validation du nouveau schéma
PRÉPARER LE 2ND
JEU DE DONNÉES
AVANT SA MISE EN RELATION
Exploration des données
Suppression des colonnes inutiles
Renommer les colonnes
Conserver uniquement
l’identifiant Wikidata
PRÉPARER LES DONNÉES POUR
COMPARER LES TITRES
Objectifs
• Obtenir une ligne par titre ou titre alternatif à
comparer avec l’autre jeu de données
• Conserver uniquement ...
Créer une chaîne de caractère à
partir du titre et du titre alternatif
Créer une ligne pour chaque partie
de la chaîne créée précédemment
Paramétrer le traitement
Supprimer la colonne altLabel
Simplification du texte
PRÉPARER LES DONNÉES POUR
COMPARER LES ANNÉES
Problématique et objectifs
L’année de publication dans Wikidata correspond à l’année de
production du film alors que l’ann...
Construire la chaîne de caractères
Créer une ligne pour chaque année
Sauvegarde et exécution du traitement
RELIER LES DEUX JEUX DE DONNÉES
Visualisation du « flow »
Choix du 1er
jeu de données à joindre
Configuration du résultat de la jointure
Choix du type de jointure
Sélection des champs pour effectuer la jointure
Sélection des champs pour effectuer la jointure
Choix des colonnes à conserver
Sauvegarde et mise à jour du schéma
de données
Exécution du traitement
SUPPRIMER LES LIGNES EN
DOUBLONS ET RÉORGANISER LE
JEU DE DONNÉES
Utilisation des recettes Python
Certaines lignes sont identiques…
Sélection d’une recette python
Création d’un nouveau jeu de données
résultat de la recette python
Création de la recette
Interface de la recette python
Chargement de la bibliothèque Pandas
http://pandas.pydata.org
Code pour dédoubloner les lignes
Affichage des colonnes
Réorganisation/suppression
des colonnes
Résultat du traitement
RÉCUPÉRER LES IMAGES
D’IMDB VIA OMDB
Visualisation du « flow »
Utilisation du site OMDb API
OMDb API est un service gratuit qui
met à disposition une API pour
obtenir des informations s...
Récupérer les données d’OMDb API
Un plugin Dataiku propose une recette
spécifique pour récupérer les infos à
partir de l’i...
Ajout d’un nouveau jeu de données
depuis le « flow »
Saisie de l’URL et récupération
du jeu de données
Configuration du jeu de données
Création d’une jointure
Choix du type de jointure
Choix des colonnes pour la jointure
Choix des colonnes à conserver
Exécution du traitement
Résultat de la jointure
Création d’une recette à partir de
l’IHM d’exploration
Création d’une nouvelle recette de
préparation
Construire une URL complète pour les affiches
https://image.tmdb.org/t/p/w300/ + URL relative récupérée d’OMDB
Construire l’URL vers la page du film sur IMDb
http://www.imdb.com/title/ + imdbId +/
VISUALISER DANS PALLADIO
EXPORTER LES DONNÉES DE
DATAIKU
Exporter les données depuis Dataiku
Configuration de l’export
Exécution de l’export
CHARGER LES DONNÉES DANS
PALLADIO
Page d’accueil de Palladio
http://hdlab.stanford.edu/palladio/
Interface de chargement des données
Il faut glisser le fichier CSV obtenu
précédemment dans cette zone
Les données sont directement
chargées dans la zone de texte
Interface de configuration des données
Interface de configuration d’un champ
Configuration du type de
données
Si le champ contient un
identifiant, il est posible...
Gestion des champs à valeurs multiples
Configuration du
caractère de séparation
des valeurs
Configuration du nom de la table
L’ONGLET « GALLERY »
Paramétrer la vue « Gallery »
Association d’un champ aux
différentes informations de
la Gallery
Choix du champ
Résultat final
Résultat final
QUELQUES RECETTES PYTHON
INDISPENSABLES
ANNEXES
http://pandas.pydata.org/
RÉORGANISER DES COLONNES
Recette n°1
Sélectionner une recette python
Modifier le script python
# -*- coding: utf-8 -*-
import dataiku
import pandas as pd, numpy as np
from dataiku import pand...
SUPPRIMER LES LIGNES EN DOUBLON
Recette n°2
Sélectionner une recette python
Modifier le script python
# -*- coding: utf-8 -*-
import dataiku
import pandas as pd, numpy as np
from dataiku import pand...
DÉNORMALISER LES LIGNES
Recette n°3
Objectif
Une ligne par film et
personne distincte
Une ligne par film
Sélectionner une recette python
Modifier le script python
# -*- coding: utf-8 -*-
import dataiku
import pandas as pd, numpy as np
from dataiku import pand...
SYNCHRONISER LES DONNÉES AVEC
UNE BASE DE DONNÉES MYSQL
Installer le driver JDBC
https://doc.dataiku.com/dss/latest/installation/jdbc.html
Entrer dans l’administration
Ajouter une connexion
Configuration de la connexion
Exemple de connexion
Penser à ajouter la propriété
avancée suivante
Ajouter une recette de synchronisation
Paramétrer et exécuter la
synchronisation
Prochain SlideShare
Chargement dans…5
×

Réalisation d'un mashup de données avec DSS de Dataiku et visualisation avec Palladio - Deuxième partie

3 629 vues

Publié le

cf. la première partie : https://www.slideshare.net/lespetitescases/ralisation-dun-mashup-de-donnes-avec-dss-de-dataiku-premire-partie

Tutoriel pour réaliser un mashup à partir de jeux de données libres téléchargés sur data.gouv.fr et Wikidata entre autres avec le logiciel DSS de Dataiku. Cette deuxième partie permet d'aborder le requêtage de Wikidata avec une requête SPARQL puis montre comment relier les jeux de données de data.gouv.fr et les données issues de Wikidata. Enfin, il aborde la visualisation des données via l'application en ligne Palladio.

Ce tutoriel a servi de support de cours au Master 2 "Technologies numériques appliqués à l'histoire" de l'Ecole nationale des chartes lors de l'année universitaire 2016-2017.

Publié dans : Données & analyses
  • Identifiez-vous pour voir les commentaires

Réalisation d'un mashup de données avec DSS de Dataiku et visualisation avec Palladio - Deuxième partie

  1. 1. Gautier Poupeau gautier.poupeau@gmail.com @lespetitescases http://www.lespetitescases.net Réalisation d’un mashup de données Second cours
  2. 2. Visualisation du « flow »
  3. 3. RÉCUPÉRER DES DONNÉES DE WIKIDATA
  4. 4. PRÉSENTATION DE WIKIDATA
  5. 5. Les limites de Dbpedia • Données structurées complexes à modifier dans les Wikipedias • Délai d’attente pour disposer de la mise à jour (dbpedia mis à jour une fois par an) • Données dispersées dans les différentes versions de Dbpedia • Dbpedia ne propose pas un niveau de service compatible avec des impératifs de production • Erreurs dans les extractions
  6. 6. Wikidata • Projet officiel de la Wikimedia Foundation • Développée à partir de 2012 à l’initiative de l’association Wikimedia Deutschland • Ouvert à tous • Les données sont libres : CC0 • Le site est entièrement multilingue • Objectif 1er : centraliser et faciliter la maintenance des données structurées des Wikipedias
  7. 7. La gestion des liens interlangues Ancien système Nouveau système Gestion disséminée (données dispersées sur 280 Wikipédias) Gestion centralisée Maintenance par une noria de robots Collecte par robots (sauf ambiguïté), maintenance à la main
  8. 8. La gestion des liens interlangues [[af:Victor Hugo]] [[als:Victor Hugo]] [[an:Victor Hugo]] [[ar:]] [[arz:]] [[ast:Victor Hugo]] [[az:Viktor Hüqo]] [[bat-smg:Victor Hugo]] [[ba: , ]]Гюго Виктор [[be-x-old: ]]Віктор Юго [[be: ]]Віктор Гюго [[bg: ]]Виктор Юго [[bn:]] [[br:Victor Hugo]] [[cv: ]]Виктор Гюго [[cy:Victor Hugo]] [[da:Victor Hugo]] [[de:Victor Hugo]] [[diq:Victor Hugo]] [[el: ]]Βίκτωρ Ουγκώ [[en:Victor Hugo]] Ancien système Wikipédia Nouveau système Wikidata
  9. 9. La gestion des infobox Ancien système Nouveau système données dispersées (280 Wikipédias) données centralisées mise à jour variable selon les Wikipédias gestion simplifiée des données
  10. 10. La gestion des infobox {{Infobox Conjoint politique | nom = Berthe Faure | image = Faure.1212301544- 1-.jpg | légende = Dessin supposé de Berthe Faure, debout et de dos, lors du décès de son mari (une du ''[[Le Petit Journal (quotidien)|Petit Journal]]''). | statut = [[Liste des épouses des présidents de la République française| Épouse du {{7e}} président de la République française]] | début = {{date|17|janvier| 1895}} | fin = {{date|16|février| 1899}}<br /><small>(4 ans et 29 jours)</small> | conjoint = [[Félix Faure]] | prédécesseur = [[Hélène Casimir- Perier]] | successeur = [[Marie-Louise Loubet]] | nom de naissance = Marie-Mathilde Berthe Belluot | date de naissance = {{date de naissance| 21|février|1842}} | lieu de naissance = | date de décès = [[1920]] (à 78 ans) | lieu de décès = | profession = }}
  11. 11. STRUCTURE DES DONNÉES DE WIKIDATA
  12. 12. Structure des données de Wikidata
  13. 13. Lien avec l’article dans Wikipedia
  14. 14. Etiquettes, description et nature Lien avec une autre entité
  15. 15. CONSTRUIRE UNE REQUÊTE SPARQL AVEC WIKIDATA
  16. 16. Explorer les données disponibles pour le type d’entité interrogée
  17. 17. Repérer les codes qui vont servir à construire votre requête
  18. 18. Repérer les codes qui vont servir à construire votre requête
  19. 19. Repérer les codes qui vont servir à construire votre requête
  20. 20. Repérer les codes qui vont servir à construire votre requête
  21. 21. Résumé des ressources intéressantes • Etiquette de l’entité • Alias de l’entité • Nature de l’entité : P31 • Date de publication : P577 • Identifiant Imdb : P345 • Film : Q11424
  22. 22. et les URIS correspondantes • http://www.w3.org/2000/01/rdf-schema#label • http://www.w3.org/2004/02/skos/core#altLabel • http://www.wikidata.org/prop/direct/P31 • http://www.wikidata.org/prop/direct/P577 • http://www.wikidata.org/prop/direct/P345 • http://www.wikidata.org/entity/Q11424
  23. 23. Attention à la hiérarchie des natures Ce n’est pas la nature « Film » mais ses sous-classes…
  24. 24. Attention à la hiérarchie des natures Dans ce cas, il s’agit d’une sous-classe directe de film mais la hiérarchie peut être plus importante avec des entités associées à chaque niveau  à prendre en compte dans la construction de la requête !
  25. 25. Construire la requête SPARQL SPARQL endpoint de Wikidata : https://query.wikidata.org/ Zone de saisie de la requête SPARQL Choix des préfixes à ajouter dans la requête Bouton pour lancer la requête Zone d’affichage des résultats de la requête
  26. 26. Ajout des préfixes les plus communs pour construire une requête
  27. 27. Ajout des préfixes les plus communs pour construire une requête
  28. 28. Chercher les entités d’une nature précise
  29. 29. Chercher les entités d’une nature précise Nombre de résultats : 191 153 résultats pour des entités de nature « film » mais ce résultat ne prend pas en compte les entités qui ont pour nature une sous-classe de film
  30. 30. Chercher les entités d’une nature précise et ses sous-classes Cette ligne signifie : « les entités d’un type dont la super- classe quelque soit le niveau dans la hiérarchie est Film ». On utilise le caractère « * » placé juste après la propriété wdt:P279 = sous-classe de
  31. 31. Chercher les entités d’une nature précise et ses sous-classes Nombre de résultats : 435 030 résultats pour des entités de nature « film » ou une de ses sous-classes
  32. 32. Ajout de la fonction « blazegraph » pour récupérer les étiquettes des ressources Indication de la langue des étiquettes à récupérer Ajout de la chaîne « Label » à la variable de la ressource
  33. 33. Ajout de la fonction « blazegraph » pour récupérer les étiquettes des ressources La requête échoue car elle est trop large
  34. 34. Limiter le nombre de résultats
  35. 35. Récupérer la date de publication
  36. 36. Filtrer avec la date de publication
  37. 37. Filtrer avec la date de publication La requête échoue car le filtre n’est pas assez restreint
  38. 38. Filtrer avec la date de publication
  39. 39. Récupérer uniquement l’année
  40. 40. Récupérer l’identifiant Imdb
  41. 41. Récupérer les étiquettes alternatives éventuelles
  42. 42. CHARGER LES DONNÉES DANS DATAIKU
  43. 43. Ajouter un jeu de données depuis une URL
  44. 44. Saisir l’URL
  45. 45. Récupérer l’URL de la requête SPARQL
  46. 46. Construction de l’URL de requêtage URL du web service https://query.wikidata.org/bigdata/namespace/wdq/sparql Format de la réponse de la requête SPARQL valeur du paramètre « format » format=json Requête SPARQL avec l’encodage URL valeur du paramètre « query » query=PREFIX%20wd%3A%20%3Chttp%3A%2F%2Fwww.wikidata.org%2Fentity%2F%3E%0APREFIX%20wdt%3A%20%3Chttp%3A%2F %2Fwww.wikidata.org%2Fprop%2Fdirect%2F%3E%0APREFIX%20wikibase%3A%20%3Chttp%3A%2F%2Fwikiba.se%2Fontology%23%3E %0APREFIX%20p%3A%20%3Chttp%3A%2F%2Fwww.wikidata.org%2Fprop%2F%3E%0APREFIX%20ps%3A%20%3Chttp%3A%2F %2Fwww.wikidata.org%2Fprop%2Fstatement%2F%3E%0APREFIX%20pq%3A%20%3Chttp%3A%2F%2Fwww.wikidata.org%2Fprop%2Fqualifier %2F%3E%0APREFIX%20rdfs%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0APREFIX%20bd%3A %20%3Chttp%3A%2F%2Fwww.bigdata.com%2Frdf%23%3E%0A%0ASELECT%20DISTINCT%20%3Ffilm%20%3FfilmLabel%20%3FaltLabel %20%3FimdbID%20%3Fyear%0AWHERE%20%7B%0A%20%7B%7B%3Ffilm%20wdt%3AP31%20wd%3AQ11424.%7D%20UNION%20%7B%3Ffilm %20wdt%3AP31%20%3Ftype.%20%3Ftype%20wdt%3AP279*%20wd%3AQ11424%7D%7D%0A%20%20%3Ffilm%20wdt %3AP345%20%3FimdbID.%0A%20%20OPTIONAL%20%7B%3Ffilm%20skos%3AaltLabel%20%3FaltLabel.%20FILTER%20(lang(%3FaltLabel)%3D %27fr%27)%7D%0A%20%20%3Ffilm%20wdt%3AP577%20%3Fdate%0A%20%20BIND%20(year(%3Fdate)%20AS%20%3Fyear)%0A%20%20FILTER %20(%3Fdate%20%3E%3D%20%222008-01-01T00%3A00%3A00Z%22%5E%5Exsd%3AdateTime)%0A%20%20FILTER%20(%3Fdate%20%3C%3D %20%222015-12-31T00%3A00%3A00Z%22%5E%5Exsd%3AdateTime)%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20%0A%09bd %3AserviceParam%20wikibase%3Alanguage%20%22fr%22%0A%20%20%7D%0A%20%20%0A%7D
  47. 47. Astuce : service en ligne pour encoder une chaîne pour une URL http://meyerweb.com/eric/tools/dencoder/
  48. 48. Astuce : service en ligne pour encoder une chaîne pour une URL http://meyerweb.com/eric/tools/dencoder/
  49. 49. Saisir l’URL construit
  50. 50. Télécharger le jeu de données
  51. 51. Echec du téléchargement  relancer le
  52. 52. Téléchargement effectué
  53. 53. Configurer le jeu de données Par défaut, Dataiku choisit le type CSV, il n’arrive donc pas à analyser les données.
  54. 54. Sélectionner le type « json »
  55. 55. Renseigner le jsonPath de boucle
  56. 56. La prévisualisation des données s’affiche
  57. 57. Exploration du jeu de données
  58. 58. Liste des jeux de données chargés Reproduire la procédure pour charger les films entre 2000 et 2007
  59. 59. Visualisation du « flow »
  60. 60. Empilement des deux jeux de données
  61. 61. Sélection du premier jeu de données
  62. 62. Sélection du second jeu de données
  63. 63. Saisie du nom du nouveau jeu de données
  64. 64. Interface pour empiler les jeux de données
  65. 65. Mise à jour du schéma
  66. 66. Visualisation du « flow »
  67. 67. PRÉPARER LE 1ER JEU DE DONNÉES AVANT SA MISE EN RELATION
  68. 68. Interface de préparation des données
  69. 69. AJOUTER UNE VALEUR FIXE DANS DES CELLULES VIDES
  70. 70. Résultat d’une jointure pour la colonne « Premier Film ? » Une valeur n’est présente que dans les lignes jointes
  71. 71. Sélectionner le traitement « Fill empty cells with fixed value »
  72. 72. Configuration du traitement
  73. 73. Résultat du traitement
  74. 74. SIMPLIFIER UN TEXTE POUR SA COMPARAISON
  75. 75. Sélectionner le traitement « Simplify text »
  76. 76. Créer une colonne avec le texte simplifié
  77. 77. Validation du nouveau schéma
  78. 78. PRÉPARER LE 2ND JEU DE DONNÉES AVANT SA MISE EN RELATION
  79. 79. Exploration des données
  80. 80. Suppression des colonnes inutiles
  81. 81. Renommer les colonnes
  82. 82. Conserver uniquement l’identifiant Wikidata
  83. 83. PRÉPARER LES DONNÉES POUR COMPARER LES TITRES
  84. 84. Objectifs • Obtenir une ligne par titre ou titre alternatif à comparer avec l’autre jeu de données • Conserver uniquement les colonnes nécessaires à la comparaison • Normaliser le texte de la chaîne de la même manière que dans l’autre jeu de données
  85. 85. Créer une chaîne de caractère à partir du titre et du titre alternatif
  86. 86. Créer une ligne pour chaque partie de la chaîne créée précédemment
  87. 87. Paramétrer le traitement
  88. 88. Supprimer la colonne altLabel
  89. 89. Simplification du texte
  90. 90. PRÉPARER LES DONNÉES POUR COMPARER LES ANNÉES
  91. 91. Problématique et objectifs L’année de publication dans Wikidata correspond à l’année de production du film alors que l’année dans le jeu de données du CNC correspond à l’année de sortie du film en France, il peut parfois se passer plusieurs années entre les deux. Pour optimiser les chances de jointure sans trop augmenter le risque d’erreur, il est nécessaire de comparer les deux jeux de données à deux années près. C’est-à-dire dans le jeu de données provenant de Wikidata de créer autant de lignes que d’années en plus (deux ans avant, un an avant, un an après, deux après).
  92. 92. Construire la chaîne de caractères
  93. 93. Créer une ligne pour chaque année
  94. 94. Sauvegarde et exécution du traitement
  95. 95. RELIER LES DEUX JEUX DE DONNÉES
  96. 96. Visualisation du « flow »
  97. 97. Choix du 1er jeu de données à joindre
  98. 98. Configuration du résultat de la jointure
  99. 99. Choix du type de jointure
  100. 100. Sélection des champs pour effectuer la jointure
  101. 101. Sélection des champs pour effectuer la jointure
  102. 102. Choix des colonnes à conserver
  103. 103. Sauvegarde et mise à jour du schéma de données
  104. 104. Exécution du traitement
  105. 105. SUPPRIMER LES LIGNES EN DOUBLONS ET RÉORGANISER LE JEU DE DONNÉES Utilisation des recettes Python
  106. 106. Certaines lignes sont identiques…
  107. 107. Sélection d’une recette python
  108. 108. Création d’un nouveau jeu de données résultat de la recette python
  109. 109. Création de la recette
  110. 110. Interface de la recette python Chargement de la bibliothèque Pandas http://pandas.pydata.org
  111. 111. Code pour dédoubloner les lignes
  112. 112. Affichage des colonnes
  113. 113. Réorganisation/suppression des colonnes
  114. 114. Résultat du traitement
  115. 115. RÉCUPÉRER LES IMAGES D’IMDB VIA OMDB
  116. 116. Visualisation du « flow »
  117. 117. Utilisation du site OMDb API OMDb API est un service gratuit qui met à disposition une API pour obtenir des informations sur les films dont les images des affiches. Un film est trouvé via son identifiant IMDb ou son titre
  118. 118. Récupérer les données d’OMDb API Un plugin Dataiku propose une recette spécifique pour récupérer les infos à partir de l’identifiant IMDDB ce qui correspond parfaitement à notre besoin. Malheureusement, un petit bug empêche son utilisation (cf. https://github.com/dataiku/dataiku-contrib/issues/42 ) Pour simplifier le tutoriel, un jeu de données contenant les informations d’OMDb pour les films traités est mis à disposition sur GitHub : https://github.com/lespetitescases/datasets/blob/master/imdbInformations.csv?raw=true
  119. 119. Ajout d’un nouveau jeu de données depuis le « flow »
  120. 120. Saisie de l’URL et récupération du jeu de données
  121. 121. Configuration du jeu de données
  122. 122. Création d’une jointure
  123. 123. Choix du type de jointure
  124. 124. Choix des colonnes pour la jointure
  125. 125. Choix des colonnes à conserver
  126. 126. Exécution du traitement
  127. 127. Résultat de la jointure
  128. 128. Création d’une recette à partir de l’IHM d’exploration
  129. 129. Création d’une nouvelle recette de préparation
  130. 130. Construire une URL complète pour les affiches https://image.tmdb.org/t/p/w300/ + URL relative récupérée d’OMDB
  131. 131. Construire l’URL vers la page du film sur IMDb http://www.imdb.com/title/ + imdbId +/
  132. 132. VISUALISER DANS PALLADIO
  133. 133. EXPORTER LES DONNÉES DE DATAIKU
  134. 134. Exporter les données depuis Dataiku
  135. 135. Configuration de l’export
  136. 136. Exécution de l’export
  137. 137. CHARGER LES DONNÉES DANS PALLADIO
  138. 138. Page d’accueil de Palladio http://hdlab.stanford.edu/palladio/
  139. 139. Interface de chargement des données Il faut glisser le fichier CSV obtenu précédemment dans cette zone
  140. 140. Les données sont directement chargées dans la zone de texte
  141. 141. Interface de configuration des données
  142. 142. Interface de configuration d’un champ Configuration du type de données Si le champ contient un identifiant, il est posible de charger les données associées via un autre fichier CSV
  143. 143. Gestion des champs à valeurs multiples Configuration du caractère de séparation des valeurs
  144. 144. Configuration du nom de la table
  145. 145. L’ONGLET « GALLERY »
  146. 146. Paramétrer la vue « Gallery » Association d’un champ aux différentes informations de la Gallery
  147. 147. Choix du champ
  148. 148. Résultat final
  149. 149. Résultat final
  150. 150. QUELQUES RECETTES PYTHON INDISPENSABLES ANNEXES http://pandas.pydata.org/
  151. 151. RÉORGANISER DES COLONNES Recette n°1
  152. 152. Sélectionner une recette python
  153. 153. Modifier le script python # -*- coding: utf-8 -*- import dataiku import pandas as pd, numpy as np from dataiku import pandasutils as pdu # Chargement du jeu de donnée Dataiku Dataset_en_entree = dataiku.Dataset(« Nom_du_dataset") # Transformation du jeu de donnée en Panda Dataframe Dataset_en_entree _df = Dataset_en_entree .get_dataframe() #Réorganisation et sélection des colonnes dans l’ordre de déclaration ci-dessous final_df = Dataset_en_entree _df [[‘nom colonne 1', 'tnom colonne 2',‘nom colonne 3']] # Déclaration d’un nouveau jeu de donnée Dataiku final = dataiku.Dataset("final") # Alimentation du jeu de donnée avec le dataframe obtenu précédemment final.write_with_schema(final_df) Par défaut, le script Python contient les déclarations d’imports de bibliothèques, le jeu de données en entrée , le jeu de données en sortie
  154. 154. SUPPRIMER LES LIGNES EN DOUBLON Recette n°2
  155. 155. Sélectionner une recette python
  156. 156. Modifier le script python # -*- coding: utf-8 -*- import dataiku import pandas as pd, numpy as np from dataiku import pandasutils as pdu # Chargement du jeu de donnée Dataiku Dataset_en_entree = dataiku.Dataset(« Nom_du_dataset") # Transformation du jeu de donnée en Panda Dataframe Dataset_en_entree _df = Dataset_en_entree .get_dataframe() #Supprimer les lignes en doublon en prenant en compte les valeurs de toutes les colonnes final_df = Dataset_en_entree _df.drop_duplicates() #Supprimer les lignes en doublon en prenant en compte les valeurs d’une colonne #final_df = Dataset_en_entree _df drop_duplicates(subset=‘nom de la colonne') #Supprimer les lignes en doublon en prenant en compte les valeurs de plusieurs colonnes #final_df = Dataset_en_entree _df drop_duplicates(subset=[‘nom de la colonne 1‘, ‘nom de la colonne 2‘]) # Déclaration d’un nouveau jeu de donnée Dataiku final = dataiku.Dataset("final") # Alimentation du jeu de donnée avec le dataframe obtenu précédemment final.write_with_schema(final_df)
  157. 157. DÉNORMALISER LES LIGNES Recette n°3
  158. 158. Objectif Une ligne par film et personne distincte Une ligne par film
  159. 159. Sélectionner une recette python
  160. 160. Modifier le script python # -*- coding: utf-8 -*- import dataiku import pandas as pd, numpy as np from dataiku import pandasutils as pdu # Chargement du jeu de donnée Dataiku Dataset_en_entree = dataiku.Dataset(« Nom_du_dataset") # Transformation du jeu de donnée en Panda Dataframe Dataset_en_entree _df = Dataset_en_entree .get_dataframe() #Supprimer les lignes en doublon en prenant en compte les valeurs de toutes les colonnes groupby= Dataset_en_entree _df.groupby(‘nom colonne distincte‘)[‘nom colonne liste'].apply(lambda x: x.tolist()).to_frame().reset_index().to_dict(orient='list') #Transformer un dictionnaire Python en dataframe Panda final_df = pd.DataFrame.from_dict(groupby) # Déclaration d’un nouveau jeu de donnée Dataiku final = dataiku.Dataset("final") # Alimentation du jeu de donnée avec le dataframe obtenu précédemment final.write_with_schema(final_df)
  161. 161. SYNCHRONISER LES DONNÉES AVEC UNE BASE DE DONNÉES MYSQL
  162. 162. Installer le driver JDBC https://doc.dataiku.com/dss/latest/installation/jdbc.html
  163. 163. Entrer dans l’administration
  164. 164. Ajouter une connexion
  165. 165. Configuration de la connexion
  166. 166. Exemple de connexion Penser à ajouter la propriété avancée suivante
  167. 167. Ajouter une recette de synchronisation
  168. 168. Paramétrer et exécuter la synchronisation

×