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)