Apache Pig - SubtractDuration ()
Esta função aceita um objeto de data e hora e objetos de duração e subtrai a duração fornecida ao objeto de data e hora e retorna um novo objeto de data e hora.
Sintaxe
Aqui está a sintaxe do SubtractDuration() função.
grunt> SubtractDuration(datetime, duration)
Exemplo
Suponha que haja um arquivo chamado date.txt no HDFS diretório /pig_data/. Este arquivo contém os detalhes da data de nascimento de uma pessoa em particular, possui id da pessoa, data e hora e alguma duração de acordo com o padrão 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, carregamos este arquivo no Pig com uma relação chamada date_duration como mostrado abaixo.
grunt> date_duration = LOAD 'hdfs://localhost:9000/pig_data/date.txt' USING PigStorage(',')
as (id:int, date:chararray, duration:chararray)
A seguir está um exemplo do SubtractDuration()função. Você pode subtrair certa duração do objeto de data e hora fornecido usando este método, conforme mostrado abaixo.
subtractduration_data = foreach date_duration generate(date,duration),
SubtractDuration(ToDate(date,'yyyy/MM/dd HH:mm:ss'), duration);
O resultado da declaração será armazenado na relação chamada subtractduration_data. Verifique o conteúdo desta relação usando o operador Dump conforme mostrado abaixo.
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)