Apache Pig - LAST_INDEX_OF ()

o LAST_INDEX_OF()função aceita um valor de string e um caractere. Ele retorna a última ocorrência do caractere fornecido na string, pesquisando para trás a partir do final da string.

Sintaxe

Dada a seguir está a sintaxe do LAST_INDEX_OF() função

grunt> LAST_INDEX_OF(string, 'character')

Exemplo

Suponha que haja um arquivo chamado emp.txt no HDFS diretório /pig_data/como mostrado abaixo. Este arquivo contém os detalhes do funcionário, como id, nome, idade e cidade.

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

E, carregamos este arquivo no Pig com uma relação chamada emp_data como mostrado abaixo.

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

Dada a seguir é um exemplo do LAST_INDEX_OF()função. Neste exemplo, vamos encontrar a ocorrência da letra'g' do final, nos nomes de cada funcionário.

grunt> last_index_data = FOREACH emp_data GENERATE (id,name), LAST_INDEX_OF(name, 'g');

A declaração acima analisa o nome de cada funcionário a partir do final e retorna o valor do índice no qual a letra ‘g’ocorreu pela primeira vez. Se o nome não contém a letra‘g’ retorna o valor −1

O resultado da declaração será armazenado na relação chamada last_index_data. Verifique o conteúdo da relaçãolast_index_data usando o operador Dump conforme mostrado abaixo.

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)