Apache Pig - LAST_INDEX_OF ()
le LAST_INDEX_OF()La fonction accepte une valeur de chaîne et un caractère. Il renvoie la dernière occurrence du caractère donné dans la chaîne, en recherchant en arrière à partir de la fin de la chaîne.
Syntaxe
Ci-dessous, la syntaxe du LAST_INDEX_OF() fonction
grunt> LAST_INDEX_OF(string, 'character')
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/emp.txt' USING PigStorage(',')
as (id:int, name:chararray, age:int, city:chararray);
Ci-dessous, un exemple de LAST_INDEX_OF()fonction. Dans cet exemple, nous allons trouver l'occurrence de la lettre'g' de la fin, au nom de chaque employé.
grunt> last_index_data = FOREACH emp_data GENERATE (id,name), LAST_INDEX_OF(name, 'g');
L'instruction ci-dessus analyse le nom de chaque employé à partir de la fin et renvoie la valeur d'index à laquelle la lettre ‘g’s'est produit pour la première fois. Si le nom ne contient pas la lettre‘g’ il renvoie la valeur −1
Le résultat de l'instruction sera stocké dans la relation nommée last_index_data. Vérifier le contenu de la relationlast_index_data en utilisant l'opérateur Dump comme indiqué ci-dessous.
grunt> Dump last_index_data;
((1,Robin),-1)
((2,BOB),-1)
((3,Maya),-1)
((4,Sara),-1)
((5,David),-1)
((6,Maggy),3)
((7,Robert),-1)
((8,Syam),-1)
((9,Mary),-1)
((10,Saran),-1)
((11,Stacy),-1)
((12,Kelly),-1)