SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
Mme Ines Slimene
Ines_slimen@yahoo.fr
https://inesslimene.wixsite.com/moncours Langage de requête pig 2
 Introduction
 Pig, Hive –Similarités
 Pig, Hive –Différences
 Pig
 Cas d’utilisation
 Concepts
 Commandes
 Exemples
Plan
https://inesslimene.wixsite.com/moncours Langage de requête pig 3
 Pig fournit un langage de haut niveau conçu pour formuler des
programmes d'analyse de données.
 converti en MapReduce et exécuté dans un cluster Hadoop.
 Il peut être utilisé par :
 Analystes
 Scientifiques de données
 Statisticiens
 Etc...
 Initialement mis en œuvre par Yahoo! pour permettre aux analystes
d'accéder aux données
Pig vs MapReduce
https://inesslimene.wixsite.com/moncours Langage de requête pig 4
 Extract Transform Load (ETL)
 Ex: traitement d’un grand volume de fichiers log
 Recherche d’information
 Exemple : fichier d’audit
 Le schéma peut-être inconnu ou incohérent
Pig : cas d’utilisation
https://inesslimene.wixsite.com/moncours Langage de requête pig 5
 Pig Latin
 Langage basé sur les commandes
 Conçu spécifiquement pour la transformation de données et l'expression
des flux
 Environnement d'exécution JVM
Pig : composants
https://inesslimene.wixsite.com/moncours Langage de requête pig 6
 Mode local
 S’exécute sur une JVM
 Fonctionne exclusivement avec le système de fichiers local
pig –x local
 Mode Hadoop
 Aussi connu par mode MapReduce
 Pig transforme Pig Latin en des jobs MapReduce et les exécute dans un
cluster
pig –x mapreduce
Pig : Modes d’exécution
https://inesslimene.wixsite.com/moncours
Pig Latin : Concept
Langage de requête pig 7
 Concept
 Champ – partie des données
 Tuple – ensemble de champs. Représenté par “(“ et “)”
 (10.4, 5, word, 4, field1)
 Bag – collection de tuples. Représenté par “{“ et “}”
 { (10.4, 5, word, 4, field1), (this, 1, blah) }
 Similaire aux bases de données relationnelles
 Bag  table
 Tuple  ligne d’une table
 Les tuples d’un même bag peuvent ne pas avoir le même nombre de
colonnes.
https://inesslimene.wixsite.com/moncours Langage de requête pig 8
 Trois étapes pour un programme Pig typique :
 LOAD :
 Charger les données à partir de HDFS.
 TRANSFORM
 Traduire en un ensemble de taches map et reduce
 Operateurs relationnels : FILTER, FOREACH, GROUP, UNION, DISTINCT,
ORDER …etc.
 DUMP or STORE
 Afficher les résultats sur l’écran ou les stocker dans un fichier
Pig Latin : Commandes
https://inesslimene.wixsite.com/moncours Langage de requête pig 9
LOAD 'data' [USING function] [AS schema];
 data – le nom du fichier ou du chemin
 USING – définir la fonction load à utiliser
 Par défaut utilise la fonction PigStorage qui divise chaque ligne en champs
en utilisant un délimiteur.
 Le délimiteur par défaut est tab (‘t’)
 AS – donne un schéma aux données en entrée
 Donne des noms et des types aux champs crées
Commande LOAD
https://inesslimene.wixsite.com/moncours Langage de requête pig 10
 Les requêtes ne sont exécutées qu’à la suite de l’exécution des
commandes DUMP ou STORE
 Pig analyse et valide les requêtes mais ne les exécute pas.
 DUMP – affiche les résultats sur l’écran
 STORE – enregistre le résultat (typiquement dans un fichier)
Commandes DUMP et STORE
https://inesslimene.wixsite.com/moncours
 grunt> student = LOAD 'student_details.txt' USING PigStorage(',') as
(id:int, firstname:chararray, lastname:chararray,age:int,
phone:chararray, city:chararray);
 grunt> order_by_data = ORDER student BY age DESC;
 grunt> limit_data = LIMIT student 4;
 grunt> distinct_data = DISTINCT student;
 grunt> STORE student INTO 'pig_Output';
Exemple 1:
Langage de requête pig 11
https://inesslimene.wixsite.com/moncours Langage de requête pig 12
 Afficher le schéma (les champs, noms et types, de la relation).
 grunt> DESCRIBE student;
 Afficher le plan d’exécution
 grunt> EXPLAIN student;
 Illustrer comment pig transforme les données.
 grunt> ILLUSTRATE student;
Exemple 1– outils de diagnostique
https://inesslimene.wixsite.com/moncours Langage de requete pig 13
 grunt> select = foreach student generate firstname, city;
 grunt> group_city = foreach (group select by city) generate group as a,
select.firstname as b;
 grunt> group_flatten = foreach group_city generate a,
FLATTEN(b.firstname);
 grunt> dump group_flatten;
Exemple 2:
https://inesslimene.wixsite.com/moncours
Exemple 3: Exécution de script
/* drivers */--chargement des données
drivers = LOAD 'ch5pig/drivers.csv' USING PigStorage(',');
--selection des drivers dont l'id > 20
raw_drivers = FILTER drivers BY $0>10;
-- affichage des colonnes driverId et name
drivers_details = FOREACH raw_drivers GENERATE $0 AS driverId, $1 AS name;
/* timesheet */--chargement des données
timesheet = LOAD 'ch5pig/timesheet.csv' USING PigStorage(',');
raw_timesheet = FILTER timesheet BY $0>20;
timesheet_logged = FOREACH raw_timesheet GENERATE $0 AS driverId, $2 AS hours_logged;
--calculer total des nombre d'heure de travail par driverId
grp_logged = GROUP timesheet_logged by driverId;
sum_logged = FOREACH grp_logged GENERATE group as driverId,
SUM(timesheet_logged.hours_logged) as sum_hourslogged;
--Affichage du nombre d'heure de travail par nom de chauffeur
join_sum_logged = JOIN sum_logged by driverId, drivers_details by driverId;
join_data = FOREACH join_sum_logged GENERATE $3 as name, $1 as hours_logged;
Store join_data INTO ‘output’;
Langage de requête pig 14
https://inesslimene.wixsite.com/moncours
 Enregistrer le script sous le nom drivers.pig
 Exécuter le script avec la commande : pig –x mapreduce drivers.pig
 Ou bien exécuter à partir du Grunt shell : exec drivers.pig
Exemple 2: Exécution de script
Langage de requête pig 15

Mais conteúdo relacionado

Semelhante a Pig

10 big data hadoop
10 big data hadoop10 big data hadoop
10 big data hadoopPatrick Bury
 
10 big data hadoop
10 big data hadoop10 big data hadoop
10 big data hadoopPatrick Bury
 
Rich Desktop Applications
Rich Desktop ApplicationsRich Desktop Applications
Rich Desktop Applicationsgoldoraf
 
Cours Big Data Chap3
Cours Big Data Chap3Cours Big Data Chap3
Cours Big Data Chap3Amal Abid
 
Spark Streaming
Spark StreamingSpark Streaming
Spark StreamingPALO IT
 
Formation PHP
Formation PHPFormation PHP
Formation PHPkemenaran
 
Presentation des outils traitements distribues
Presentation des outils traitements distribuesPresentation des outils traitements distribues
Presentation des outils traitements distribuesLê Anh
 
PostgreSQL sous linux
PostgreSQL sous linuxPostgreSQL sous linux
PostgreSQL sous linuxKhalid ALLILI
 
Nettoyer et transformer ses données avec Openrefine : partie 1
Nettoyer et transformer ses données avec Openrefine : partie 1Nettoyer et transformer ses données avec Openrefine : partie 1
Nettoyer et transformer ses données avec Openrefine : partie 1Mathieu Saby
 
CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdf
CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdfCHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdf
CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdfYounesOuladSayad1
 
php2 : formulaire-session-PDO
php2 : formulaire-session-PDOphp2 : formulaire-session-PDO
php2 : formulaire-session-PDOAbdoulaye Dieng
 
Performance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPerformance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPrestaShop
 

Semelhante a Pig (20)

10 big data hadoop
10 big data hadoop10 big data hadoop
10 big data hadoop
 
10 big data hadoop
10 big data hadoop10 big data hadoop
10 big data hadoop
 
Rich Desktop Applications
Rich Desktop ApplicationsRich Desktop Applications
Rich Desktop Applications
 
Cours Big Data Chap3
Cours Big Data Chap3Cours Big Data Chap3
Cours Big Data Chap3
 
Drools
DroolsDrools
Drools
 
Cours php bac info
Cours php bac infoCours php bac info
Cours php bac info
 
Spark Streaming
Spark StreamingSpark Streaming
Spark Streaming
 
Formation PHP
Formation PHPFormation PHP
Formation PHP
 
Spark - Ippevent 19-02-2015
Spark - Ippevent 19-02-2015Spark - Ippevent 19-02-2015
Spark - Ippevent 19-02-2015
 
Presentation des outils traitements distribues
Presentation des outils traitements distribuesPresentation des outils traitements distribues
Presentation des outils traitements distribues
 
PostgreSQL sous linux
PostgreSQL sous linuxPostgreSQL sous linux
PostgreSQL sous linux
 
Nettoyer et transformer ses données avec Openrefine : partie 1
Nettoyer et transformer ses données avec Openrefine : partie 1Nettoyer et transformer ses données avec Openrefine : partie 1
Nettoyer et transformer ses données avec Openrefine : partie 1
 
iTunes Stats
iTunes StatsiTunes Stats
iTunes Stats
 
CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdf
CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdfCHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdf
CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdf
 
HTML5 en projet
HTML5 en projetHTML5 en projet
HTML5 en projet
 
php2 : formulaire-session-PDO
php2 : formulaire-session-PDOphp2 : formulaire-session-PDO
php2 : formulaire-session-PDO
 
Hive Tuning
Hive TuningHive Tuning
Hive Tuning
 
Performance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPerformance et optimisation de PrestaShop
Performance et optimisation de PrestaShop
 
Hive ppt (1)
Hive ppt (1)Hive ppt (1)
Hive ppt (1)
 
Chapitre 2 hadoop
Chapitre 2 hadoopChapitre 2 hadoop
Chapitre 2 hadoop
 

Mais de Ines Slimene (15)

Spark
SparkSpark
Spark
 
Redis
RedisRedis
Redis
 
Crud
CrudCrud
Crud
 
Cassandra
CassandraCassandra
Cassandra
 
Agregation
AgregationAgregation
Agregation
 
Neo4j
Neo4jNeo4j
Neo4j
 
Mapreduce
MapreduceMapreduce
Mapreduce
 
Introduction nosql
Introduction nosqlIntroduction nosql
Introduction nosql
 
Introduction
IntroductionIntroduction
Introduction
 
Intro mongodb
Intro mongodbIntro mongodb
Intro mongodb
 
Hive
HiveHive
Hive
 
Hdfs
HdfsHdfs
Hdfs
 
Hbase
HbaseHbase
Hbase
 
Hadoop
HadoopHadoop
Hadoop
 
Indexation
IndexationIndexation
Indexation
 

Último

gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprisesMajdaKtiri2
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfachrafbrahimi1
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film françaisTxaruka
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxRayane619450
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfabatanebureau
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxssuserbd075f
 

Último (10)

gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptx
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
 

Pig

  • 2. https://inesslimene.wixsite.com/moncours Langage de requête pig 2  Introduction  Pig, Hive –Similarités  Pig, Hive –Différences  Pig  Cas d’utilisation  Concepts  Commandes  Exemples Plan
  • 3. https://inesslimene.wixsite.com/moncours Langage de requête pig 3  Pig fournit un langage de haut niveau conçu pour formuler des programmes d'analyse de données.  converti en MapReduce et exécuté dans un cluster Hadoop.  Il peut être utilisé par :  Analystes  Scientifiques de données  Statisticiens  Etc...  Initialement mis en œuvre par Yahoo! pour permettre aux analystes d'accéder aux données Pig vs MapReduce
  • 4. https://inesslimene.wixsite.com/moncours Langage de requête pig 4  Extract Transform Load (ETL)  Ex: traitement d’un grand volume de fichiers log  Recherche d’information  Exemple : fichier d’audit  Le schéma peut-être inconnu ou incohérent Pig : cas d’utilisation
  • 5. https://inesslimene.wixsite.com/moncours Langage de requête pig 5  Pig Latin  Langage basé sur les commandes  Conçu spécifiquement pour la transformation de données et l'expression des flux  Environnement d'exécution JVM Pig : composants
  • 6. https://inesslimene.wixsite.com/moncours Langage de requête pig 6  Mode local  S’exécute sur une JVM  Fonctionne exclusivement avec le système de fichiers local pig –x local  Mode Hadoop  Aussi connu par mode MapReduce  Pig transforme Pig Latin en des jobs MapReduce et les exécute dans un cluster pig –x mapreduce Pig : Modes d’exécution
  • 7. https://inesslimene.wixsite.com/moncours Pig Latin : Concept Langage de requête pig 7  Concept  Champ – partie des données  Tuple – ensemble de champs. Représenté par “(“ et “)”  (10.4, 5, word, 4, field1)  Bag – collection de tuples. Représenté par “{“ et “}”  { (10.4, 5, word, 4, field1), (this, 1, blah) }  Similaire aux bases de données relationnelles  Bag  table  Tuple  ligne d’une table  Les tuples d’un même bag peuvent ne pas avoir le même nombre de colonnes.
  • 8. https://inesslimene.wixsite.com/moncours Langage de requête pig 8  Trois étapes pour un programme Pig typique :  LOAD :  Charger les données à partir de HDFS.  TRANSFORM  Traduire en un ensemble de taches map et reduce  Operateurs relationnels : FILTER, FOREACH, GROUP, UNION, DISTINCT, ORDER …etc.  DUMP or STORE  Afficher les résultats sur l’écran ou les stocker dans un fichier Pig Latin : Commandes
  • 9. https://inesslimene.wixsite.com/moncours Langage de requête pig 9 LOAD 'data' [USING function] [AS schema];  data – le nom du fichier ou du chemin  USING – définir la fonction load à utiliser  Par défaut utilise la fonction PigStorage qui divise chaque ligne en champs en utilisant un délimiteur.  Le délimiteur par défaut est tab (‘t’)  AS – donne un schéma aux données en entrée  Donne des noms et des types aux champs crées Commande LOAD
  • 10. https://inesslimene.wixsite.com/moncours Langage de requête pig 10  Les requêtes ne sont exécutées qu’à la suite de l’exécution des commandes DUMP ou STORE  Pig analyse et valide les requêtes mais ne les exécute pas.  DUMP – affiche les résultats sur l’écran  STORE – enregistre le résultat (typiquement dans un fichier) Commandes DUMP et STORE
  • 11. https://inesslimene.wixsite.com/moncours  grunt> student = LOAD 'student_details.txt' USING PigStorage(',') as (id:int, firstname:chararray, lastname:chararray,age:int, phone:chararray, city:chararray);  grunt> order_by_data = ORDER student BY age DESC;  grunt> limit_data = LIMIT student 4;  grunt> distinct_data = DISTINCT student;  grunt> STORE student INTO 'pig_Output'; Exemple 1: Langage de requête pig 11
  • 12. https://inesslimene.wixsite.com/moncours Langage de requête pig 12  Afficher le schéma (les champs, noms et types, de la relation).  grunt> DESCRIBE student;  Afficher le plan d’exécution  grunt> EXPLAIN student;  Illustrer comment pig transforme les données.  grunt> ILLUSTRATE student; Exemple 1– outils de diagnostique
  • 13. https://inesslimene.wixsite.com/moncours Langage de requete pig 13  grunt> select = foreach student generate firstname, city;  grunt> group_city = foreach (group select by city) generate group as a, select.firstname as b;  grunt> group_flatten = foreach group_city generate a, FLATTEN(b.firstname);  grunt> dump group_flatten; Exemple 2:
  • 14. https://inesslimene.wixsite.com/moncours Exemple 3: Exécution de script /* drivers */--chargement des données drivers = LOAD 'ch5pig/drivers.csv' USING PigStorage(','); --selection des drivers dont l'id > 20 raw_drivers = FILTER drivers BY $0>10; -- affichage des colonnes driverId et name drivers_details = FOREACH raw_drivers GENERATE $0 AS driverId, $1 AS name; /* timesheet */--chargement des données timesheet = LOAD 'ch5pig/timesheet.csv' USING PigStorage(','); raw_timesheet = FILTER timesheet BY $0>20; timesheet_logged = FOREACH raw_timesheet GENERATE $0 AS driverId, $2 AS hours_logged; --calculer total des nombre d'heure de travail par driverId grp_logged = GROUP timesheet_logged by driverId; sum_logged = FOREACH grp_logged GENERATE group as driverId, SUM(timesheet_logged.hours_logged) as sum_hourslogged; --Affichage du nombre d'heure de travail par nom de chauffeur join_sum_logged = JOIN sum_logged by driverId, drivers_details by driverId; join_data = FOREACH join_sum_logged GENERATE $3 as name, $1 as hours_logged; Store join_data INTO ‘output’; Langage de requête pig 14
  • 15. https://inesslimene.wixsite.com/moncours  Enregistrer le script sous le nom drivers.pig  Exécuter le script avec la commande : pig –x mapreduce drivers.pig  Ou bien exécuter à partir du Grunt shell : exec drivers.pig Exemple 2: Exécution de script Langage de requête pig 15