Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Considérations relatives à l'utilisation de Pig sur Amazon EMR 4.x
La version Pig 0.14.0 est installée sur les clusters créés avec les versions Amazon EMR 4.x. Pig a été mis à niveau à la version 0.16.0 dans Amazon EMR 5.0.0. Les différences importantes sont discutées ci-dessous.
Moteur d'exécution par défaut différent
La version Pig 0.14.0 sur Amazon EMR 4.x utilise MapReduce comme moteur d'exécution par défaut. Pig 0.16.0 et les versions ultérieures utilisent Apache Tez. Vous pouvez explicitement définir exectype=mapreduce
dans la pig-properties
classification de configuration pour utiliser MapReduce.
Fonctions Pig définies par l'utilisateur (UDF) abandonnées
Les fonctions définies par l'utilisateur qui étaient disponibles dans Pig sur les versions 4.x d'Amazon EMR ont été abandonnées à partir de la version Pig 0.16.0. La plupart des fonctions définies par l'utilisateur ont des fonctions équivalentes que vous pouvez utiliser à la place. Le tableau suivant répertorie les fonctions définies par l'utilisateur abandonnées et leur fonction équivalente. Pour plus d'informations, consultez Fonctions intégrées
Fonctions définies par l'utilisateur abandonnées | Fonction équivalente |
---|---|
FORMAT_DT (formatdt, date) |
GetHour(date), GetMinute(date), GetMonth(date), GetSecond(date), GetWeek(date), GetYear(date), GetDay(date) |
EXTRACT(chaîne, modèle) |
REGEX_EXTRACT_ALL(chaîne, modèle) |
REPLACE(chaîne, modèle, remplacement) |
REPLACE(chaîne, modèle, remplacement) |
DATE_TIME() |
ToDate() |
DURATION(dt, dt2) |
WeeksBetween(dt, dt2), YearsBetween(dt, dt2), SecondsBetween(dt, dt2), MonthsBetween(dt, dt2), MinutesBetween(dt, dt2), HoursBetween(dt, dt2) |
EXTRACT_DT(format, date) |
GetHour(date), GetMinute(date), GetMonth(date), GetSecond(date), GetWeek(date), GetYear(date), GetDay(date) |
OFFSET_DT(date, durée) |
AddDuration(date, durée), SubtractDuration(date, durée) |
PERIOD(dt, dt2) |
WeeksBetween(dt, dt2), YearsBetween(dt, dt2), SecondsBetween(dt, dt2), MonthsBetween(dt, dt2), MinutesBetween(dt, dt2), HoursBetween(dt, dt2) |
CAPITALIZE(chaîne) |
UCFIRST(chaîne) |
CONCAT_WITH() |
CONCAT() |
INDEX_OF() |
INDEXOF() |
LAST_INDEX_OF() |
LAST_INDEXOF() |
SPLIT_ON_REGEX() |
STRSPLT() |
UNCAPITALIZE() |
LCFIRST() |
Les fonctions UDF suivantes ont été abandonnées sans équivalent : FORMAT(), LOCAL_DATE(), LOCAL_TIME(), CENTER(), LEFT_PAD(), REPEAT(), REPLACE_ONCE(), RIGHT_PAD(), STRIP(), STRIP_END(), STRIP_START(), SWAP_CASE().
Commandes Grunt abandonnées
Certaines commandes Grunt ont été suspendues à commencer par Pig 0.16.0. Le tableau suivant répertorie les commandes Grunt sous Pig 0.14.0 et les commandes équivalentes dans la version actuelle, le cas échéant.
Commandes Grunt Pig 0.14.0 et commandes équivalentes de la version de Pig actuelle | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Commande Grunt Pig 0.14.0 | Commande Grunt sous Pig 0.16.0 et version ultérieure | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cat <non-hdfs-path>) |
fs -cat <non-hdfs-path>; |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cd <non-hdfs-path>; |
Pas d'équivalent |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ls <non-hdfs-path>; | fs -ls <non-hdfs-path>; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
déplacer <non-hdfs-path> <non-hdfs-path>; |
fs -mv <non-hdfs-path> <non-hdfs-path>; |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
copier <non-hdfs-path> <non-hdfs-path>; |
fs -cp <non-hdfs-path> <non-hdfs-path>; |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
copyToLocal <non-hdfs-path> <local-path>; |
fs -copyToLocal <non-hdfs-path> <local-path>; |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
copyFromLocal <local-path> <non-hdfs-path>; |
fs -copyFromLocal <local-path> <non-hdfs-path>; |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mkdir <non-hdfs-path>; |
fs -mkdir <non-hdfs-path>; |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rm <non-hdfs-path>; |
fs -rm -r -skipTrash <non-hdfs-path>; |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rmf <non-hdfs-path>; |
fs -rm -r -skipTrash <non-hdfs-path>; |
Capacités supprimées pour les répertoires de base non HDFS
Pig 0.14.0 sur les versions 4.x d'Amazon EMR possède deux mécanismes pour autoriser les utilisateurs autres que l'utilisateur hadoop
, qui ne disposent pas de répertoires de base, à exécuter des scripts Pig. Le premier mécanisme est un mécanisme de secours automatique qui définit le répertoire de travail initial dans le répertoire racine, si le répertoire de base n'existe pas. Le second mécanisme est une propriété pig.initial.fs.name
qui vous permet de modifier le répertoire de travail initial.
Ces mécanismes ne sont pas disponibles à partir des versions Amazon EMR 5.0.0. C'est pourquoi les utilisateurs doivent disposer d'un répertoire de base sur un HDFS. Cela ne s'applique pas à l'utilisateur hadoop
, car un répertoire de base est provisionné lors du lancement. Les scripts qui s'exécutent à l'aide des étapes JAR Hadoop utilisent par défaut l'utilisateur Hadoop, sauf si un autre utilisateur est explicitement spécifié à l'aide de command-runner.jar
.