Apache Pig - ENDSWITH()


Advertisements

This function accepts two String parameters, it is used to verify whether the first string ends with the second string.

Syntax

grunt> ENDSWITH(string1, string2)

Example

Assume that there is a file named emp.txt in the HDFS directory /pig_data/ as shown below. This file contains the employee details such as id, name age and city.

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

And, we have loaded this file into Pig with a relation named emp_data as shown below.

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

Following is an example of ENDSWITH() function, in this example we are verifying, weather the name of every employee ends with the character n.

grunt> emp_endswith = FOREACH emp_data GENERATE (id,name),ENDSWITH ( name, 'n' );

The above statement verifies weather the name of the employee ends with the letter n. Since the names of the employees Saran and Robin ends with the letter n for these two tuples ENDSWITH() function returns the Boolean value ‘true’ and for remaining tuples the value will be ‘false’.

The result of the statement will be stored in the relation named emp_endswith. Verify the content of the relation emp_endswith, using the Dump operator as shown below.

grunt> Dump emp_endswith;

((1,Robin),true)
((2,BOB),false)
((3,Maya),false)
((4,Sara),false)
((5,David),false)
((6,Maggy),false)
((7,Robert),false)
((8,Syam),false)
((9,Mary),false)
((10,Saran),true)
((11,Stacy),false)
((12,Kelly),false)
apache_pig_string_functions.htm
Advertisements