Cochon latin | Comment écrire du code en PIG Latin

Contenu

Dans l'article précédent, nous discutons de l'écosystème Hadoop (relier). Nous avons également parlé des deux outils Hadoop les plus utilisés, c'est-à-dire, COCHON Oui HIVE. Les deux langues ont leurs adeptes et il n'y a pas de préférence particulière entre les deux, en général. Cependant, dans les cas où l'équipe utilisant ces outils est plus orientée programmation, parfois PIG est choisi sur HIVE, car cela leur donne plus de liberté lors de l'encodage. Dans les cas où l'équipe n'est pas très experte en programmation, HIVE est probablement une meilleure option, étant donné sa similitude avec les requêtes SQL. Les requêtes sur PIG sont écrites en latin PIG. Dans cet article, nous allons vous présenter PIG Latin à l'aide d'un exemple pratique simple.

Installation de porc

Le moteur PIG s'exécute sur le serveur du client. C'est simplement un interpréteur qui convertit votre code simple en opérations de réduction de carte complexes. Il est carteréduire ahora se maneja en la red distribuida de Hadoop. Notez que l'ensemble du réseau ne saura même pas que la requête a été exécutée à partir d'un moteur PIG. PIG ne reste que dans l'interface utilisateur et est destiné à faciliter le codage pour l'utilisateur.

cochon-8548302

Suivez les étapes ci-dessous dans votre shell pour installer PIG:

Pour installer des systèmes compatibles Pig On Red Hat:

$ sudo miam installer cochon

Pour installer Pig sur les systèmes SLES:

$ sudo zypper installer cochon

Pour installer Pig sur Ubuntu et d'autres systèmes Debian:

$ sudo apt-get install pig

Si vous envisagez d'exécuter Pig sous Windows, vous devriez simplement faire fonctionner une machine virtuelle sur Linux, puis travailler dessus. Vous pouvez utiliser VMWare Player ou Oracle VirtualBox pour en démarrer un.

Après avoir installé le package PIG, vous pouvez commencer avec la coquille de grognement.

Pour démarrer le Grunt Shell (MRv1):
$ exporter PIG_CONF_DIR=/usr/lib/pig/conf
$ export PIG_CLASSPATH=/usr/lib/hbase/hbase-0.94.2-cdh4.2.1-security.jar:/usr/lib/
zookeeper/zookeeper-3.4.5-cdh4.2.1.jar
$ cochon 
2012-02-08 23:39:41,819 [principale] INFO org.apache.pig.Main - 
Consignation des messages d'erreur dans: /maison/arvind/cochon-0.9.2-cdh4b1/bin/pig_1328773181817.log
2012-02-08 23:39:41,994 [principale] INFO
org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - 
Connexion au système de fichiers hadoop à: hdfs://hôte local/
...
grognement> 

Pour démarrer le Grunt Shell (FIL):
$ exporter PIG_CONF_DIR=/usr/lib/pig/conf
$ export PIG_CLASSPATH=/usr/lib/hbase/hbase-0.94.2-cdh4.2.1
-security.jar:/usr/lib/zookeeper/zookeeper-3.4.5-cdh4.2.1.jar
$ cochon 
...
grognement>

Une fois que je vois « gronder> », vous pouvez commencer à coder en PIG.

Contexte du cas

Vous êtes le leader de l'analyse dans un magasin de vente au détail appelé XYZ. XYZ conserve une trace de tous les clients qui achètent dans ce magasin. Votre tâche pour cet exercice consiste à créer une nouvelle colonne appelée taxe de vente., quel est le 5% de la vente. Alors, filtrer les personnes pour lesquelles le montant de la taxe est inférieur à $ 35. Une fois ce sous-ensemble terminé, choisir la 2 clients principaux avec le moins de clients. Vous trouverez ci-dessous un exemple de tableau pour le magasin de détail qui est enregistré au format .csv.

tableau1-7729424

Écrire une requête en PIG Latin

Construisons cette requête étape par étape. Voici les étapes que vous devez suivre:

Paso 1 : Téléchargez l'ensemble de données dans le format compréhensible de PIG et stockage temporaire à partir duquel la requête PIG peut référencer directement la table

Sales = LOAD 'dataset.csv' USING PigStorage (',') COMME (Client,Ventes);

Tenga en cuenta que el comando anterior no carga la variable âge. Tout en travaillant avec le Big Data, vous devez être très précis sur les variables que vous devez utiliser et, donc, assurez-vous de ne choisir que les variables qui sont importantes pour vous dans votre code.

Paso 2: créer une nouvelle table avec des valeurs fiscales.

Taxe = FOREACH Ventes GÉNÉRER Client,Ventes,Ventes*0,05 en tant que taxe : flotter;

La commande ci-dessus génère une nouvelle table appelée taxes qui a les trois colonnes. Le tableau ressemblera maintenant à ce qui suit:

tableau2-9758302Paso 3: Sous-ensemble de la table entière sur le client avec une valeur fiscale ci-dessous $ 35.

Lowtax = FILTRE Taxe PAR Taxe < $35;

Le résultat de cette commande sera vu choisir les cellules jaunes dans le tableau suivant:

tableau 3-5559758Paso 4: Maintenant, nous devons trier la table de sous-ensemble par client (identifiant) et choisissez les deux Clients principaux.

triécust = ORDER Lowtax BY Customer;
top_two = LIMIT triée 2;

Paso 5: stocker le fichier temporaire dans un fichier csv permanent

STORE sortedcust INTO 'salesreport' USING PIGSTORAGE (',');

Dans cette étape, notre tâche est terminée et vous obtiendrez les numéros de client requis avec tous les détails. Ensuite, le code complet qui peut être exécuté à la fois est affiché:

Sales = LOAD 'dataset.csv' USING PigStorage (',') COMME (Client,Ventes);
Taxe = FOREACH Ventes GÉNÉRER Client,Ventes,Ventes*0,05 en tant que taxe : flotter;
Lowtax = FILTRE Taxe PAR Taxe < $35;
triécust = ORDER Lowtax BY Customer;
top_two = LIMIT triée 2;
STORE sortedcust INTO 'salesreport' USING PIGSTORAGE (',');

Remarques finales

Dans cet article, nous avons appris à écrire du code de base en PIG Latin. Cependant, nous avons limité cet article à de simples instructions de filtrage et de tri, nous parlerons également de fusions plus complexes et d'autres déclarations dans certains des prochains articles.

L'article vous a-t-il été utile? Partagez avec nous toutes les applications pratiques de PIG que vous avez trouvées dans votre travail. Faites-nous part de vos impressions sur cet article dans la case ci-dessous..

Si vous aimez ce que vous venez de lire et souhaitez continuer à apprendre sur l'analyse, abonnez-vous à nos e-mails, Suivez-nous sur Twitter ou comme le nôtre page le Facebook.

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.

Haut-parleur de données