2016-04-07 9 views
-1

Abfrage:Wie auf jedes Element von Date in Pig Latin zugreifen?

records = LOAD 'input' using PigStorage(' ') as (id:int, name:chararray, desination:chararray, date:chararray, salary: long); 

Probeneingang:

(10102,neha,developer,14/02/13,32000) 

    (10103,deva,admin,02/02/14,40000) 

    (10102,neha,developer,01/01/14,45000) 

    (10245,sasi,developer,01/01/14,20000) 

    (10109,surya,manager,01/02/2014,56000) 

    (10102,neha,developer,01/02/2014,45000) 

    (10245,sasi,developer,02/01/2014,25000) 

Ich mag die obigen Daten auf Jahr des Datums (nicht gesamtes Datum) filtern.

+0

kann u fügen Sie Ihre Beispielausgabe, die Sie wollen? –

Antwort

1

Überprüfen Sie, ob dies für Sie funktioniert.

records = LOAD '/home/abhijit/Downloads/movies.txt' using PigStorage(',') as (id:int, name:chararray, desination:chararray, date:chararray, salary:int); 

todate_data = foreach records generate id,name,destination,date, salary,ToDate(date,'yyyy/MM/dd HH:mm:ss') as (date_time:DateTime); 

todate_data = foreach records generate name,desination,ToDate(date,'dd/MM/yyyy') as (date_time:DateTime); 

getyear_data = foreach todate_data generate name,desination,GetYear(date_time); 

groupByYear = group getyear_data by $3; 

wird der endgültige Ausgang sein:

(2013,{(neha,developer,2013)}) 
(2014,{(deva,admin,2014),(neha,developer,2014),(sasi,developer,2014),(surya,manager,2014),(neha,developer,2014),(sasi,developer,2014)}) 
+0

Danke Abhijit. Ich schätze Ihre Hilfe. :-) – Dhiraj

+0

@Dhiraj akzeptieren Sie die Antwort, wenn es Ihr Problem gelöst hat, damit andere wissen, dass dies die richtige Antwort ist. Wenn Sie Ihr Problem nicht gelöst haben, aber Ihnen helfen, dann können Sie wählen. – Mahendra

Verwandte Themen