Apache Pig - AddDuration ()
Cette fonction accepte un objet date-heure et un objet durée, ajoute la durée donnée à l'objet date-heure et renvoie un nouvel objet date-heure avec une durée supplémentaire.
Syntaxe
Voici la syntaxe de la fonction AddDuration ().
grunt> AddDuration(datetime, duration)
Note- La durée est représentée dans la norme ISO 8601. Selon la norme ISO 8601, P est placé au début, tout en représentant la durée et il est appelé comme indicateur de durée. Également,
Yest l'indicateur de l'année. Nous utilisons ceci après avoir déclaré l'année.
Example - P1Y représente 1 an.
Mest l'indicateur du mois. Nous utilisons ceci après avoir déclaré le mois.
Example - P1M représente 1 mois.
West l'indicateur de semaine. Nous utilisons ceci après avoir déclaré la semaine.
Example - P1W représente 1 semaine.
Dest l'indicateur du jour. Nous utilisons ceci après avoir déclaré le jour.
Example - P1D représente 1 jour.
Test l'indicateur de temps. Nous utilisons ceci avant de déclarer l'heure.
Example - PT5H représente 5 heures.
Hest l'indicateur de l'heure. Nous utilisons ceci après avoir déclaré l'heure.
Example - PT1H représente 1 heure.
Mest l'indicatif des minutes. Nous utilisons ceci après avoir déclaré la minute.
Example - PT1M représente 1 minute.
Sest le deuxième désignateur. Nous utilisons ceci après avoir déclaré le second.
Example - PT1S représente 1 seconde.
Exemple
Supposons qu'il existe un fichier nommé date.txt dans le HDFS annuaire /pig_data/. Ce fichier contient les détails de la date de naissance d'une personne en particulier, l'identifiant, la date et l'heure et une durée selon la norme 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
Et, nous avons chargé ce fichier dans Pig avec une relation nommée date_duration comme indiqué ci-dessous.
grunt> date_duration = LOAD 'hdfs://localhost:9000/pig_data/date.txt' USING PigStorage(',')
as (id:int, date:chararray, duration:chararray)
Voici un exemple de AddDuration()fonction. Vous pouvez ajouter une certaine durée à l'objet date-heure donné en utilisant cette méthode comme indiqué ci-dessous.
grunt> Add_duration_data = foreach date_duration generate(date,duration),
AddDuration(ToDate(date,'yyyy/MM/dd HH:mm:ss'), duration);
Le résultat de l'instruction sera stocké dans la relation nommée add_duration_data. Vérifiez le contenu de cette relation à l'aide de l'opérateur Dump comme indiqué ci-dessous.
grunt> Dump add_duration_data;
((1989/09/26 09:00:00,PT1M),1989-09-26 T09:01:00.000+05:30)
((1980/06/20 10:22:00,P1Y),1981-06-20 T10:22:00.000+05:30)
((1990/12/19 03:11:44,P3M),1991-03-19 T03:11:44.000+05:30)