Apache Pig - SubtractDuration ()
Questa funzione accetta un oggetto data-ora e un oggetto durata e sottrae la durata specificata all'oggetto data-ora e restituisce un nuovo oggetto data-ora.
Sintassi
Ecco la sintassi di SubtractDuration() funzione.
grunt> SubtractDuration(datetime, duration)
Esempio
Supponiamo che esista un file denominato date.txt nel HDFS directory /pig_data/. Questo file contiene i dettagli della data di nascita di una determinata persona, ha l'ID persona, la data e l'ora e una certa durata secondo lo standard ISO 8601.
date.txt
001,1989/09/26 09:00:00,PT1M
002,1980/06/20 10:22:00,P1Y
003,1990/12/19 03:11:44,P3M
E abbiamo caricato questo file in Pig con una relazione denominata date_duration come mostrato di seguito.
grunt> date_duration = LOAD 'hdfs://localhost:9000/pig_data/date.txt' USING PigStorage(',')
as (id:int, date:chararray, duration:chararray)
Di seguito è riportato un esempio di SubtractDuration()funzione. È possibile sottrarre una certa durata dall'oggetto data-ora specificato utilizzando questo metodo come mostrato di seguito.
subtractduration_data = foreach date_duration generate(date,duration),
SubtractDuration(ToDate(date,'yyyy/MM/dd HH:mm:ss'), duration);
Il risultato dell'istruzione verrà memorizzato nella relazione denominata subtractduration_data. Verificare il contenuto di questa relazione utilizzando l'operatore Dump come mostrato di seguito.
grunt> Dump subtractduration_data;
((1989/09/26 09:00:00,PT1M),1989-09-26 T08:59:00.000+05:30)
((1980/06/20 10:22:00,P1Y),1979-06-20 T10:22:00.000+05:30)
((1990/12/19 03:11:44,P3M),1990-09-19 T03:11:44.000+05:30)