Apache Pig - REMPLACER ()

Cette fonction est utilisée pour remplacer tous les caractères d'une chaîne donnée par les nouveaux caractères.

Syntaxe

Ci-dessous, la syntaxe du REPLACE()fonction. Cette fonction accepte trois paramètres, à savoir,

  • string- La chaîne à remplacer. Si nous voulons remplacer la chaîne dans une relation, nous devons passer le nom de la colonne à laquelle appartient la chaîne.

  • regEXP - Ici, nous devons passer la chaîne / expression régulière que nous voulons remplacer.

  • newChar - Ici, nous devons passer la nouvelle valeur de la chaîne.

grunt> REPLACE(string, 'regExp', 'newChar');

Exemple

Supposons qu'il existe un fichier nommé emp.txt dans le HDFS annuaire /pig_data/comme indiqué ci-dessous. Ce fichier contient les détails de l'employé tels que l'identifiant, le nom, l'âge et la ville.

emp.txt

001,Robin,22,newyork
002,BOB,23,Kolkata
003,Maya,23,Tokyo
004,Sara,25,London 
005,David,23,Bhuwaneshwar 
006,Maggy,22,Chennai
007,Robert,22,newyork 
008,Syam,23,Kolkata
009,Mary,25,Tokyo 
010,Saran,25,London 
011,Stacy,25,Bhuwaneshwar 
012,Kelly,22,Chennai

Et, nous avons chargé ce fichier dans Pig avec une relation nommée emp_data comme indiqué ci-dessous.

grunt> emp_data = LOAD 'hdfs://localhost:9000/pig_data/emp1.txt' USING PigStorage(',')
   as (id:int, name:chararray, age:int, city:chararray);

Voici un exemple de REPLACE()fonction. Dans cet exemple, nous avons remplacé le nom de la villeBhuwaneshwar avec une forme plus courte Bhuw.

grunt> replace_data = FOREACH emp_data GENERATE (id,city),REPLACE(city,'Bhuwaneshwar','Bhuw');

L'instruction ci-dessus remplace la chaîne 'Bhuwaneshwar' avec 'Bhuw' dans la colonne nommée city dans le emp_datarelation et renvoie le résultat. Ce résultat est stocké dans la relation nomméereplace_data. Vérifier le contenu de la relationreplace_data en utilisant l'opérateur Dump comme indiqué ci-dessous.

grunt> Dump replace_data;
 
((1,newyork),newyork)
((2,Kolkata),Kolkata)
((3,Tokyo),Tokyo)
((4,London),London) 
((5,Bhuwaneshwar),Bhuw)
((6,Chennai),Chennai)
((7,newyork),newyork) 
((8,Kolkata),Kolkata)
((9,Tokyo),Tokyo) 
((10,London),London) 
((11,Bhuwaneshwar),Bhuw) 
((12,Chennai),Chennai)