

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
<a name="emr-Pig-4x"></a>

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
<a name="emr-Pig-engine-4x"></a>

La version 0.14.0 de Pig sur les versions 4.x d'Amazon EMR est utilisée MapReduce comme moteur d'exécution par défaut. Pig 0.16.0 et les versions ultérieures utilisent Apache Tez. Vous pouvez définir explicitement `exectype=mapreduce` la classification `pig-properties` de configuration à utiliser MapReduce.

## Fonctions définies par l'utilisateur Dropped Pig () UDFs
<a name="emr-Pig-udf-4x"></a>

Les versions personnalisées UDFs disponibles dans les versions 4.x de Pig on Amazon EMR ont été supprimées à partir de Pig 0.16.0. La plupart d'entre eux UDFs ont des fonctions équivalentes que vous pouvez utiliser à la place. Le tableau suivant répertorie les fonctions supprimées UDFs et les fonctions équivalentes. Pour plus d'informations, consultez [Fonctions intégrées](https://pig.apache.org/docs/r0.16.0/func.html) sur le site Apache Pig.


| Fonctions définies par l'utilisateur abandonnées | Fonction équivalente | 
| --- | --- | 
|  FORMAT\$1DT (formatdt, date)  |  GetHour(date), GetMinute (date), GetMonth (date), GetSecond (date), GetWeek (date), GetYear (date), GetDay (date)  | 
|  EXTRACT(chaîne, modèle)  |  REGEX\$1EXTRACT\$1ALL(chaîne, modèle)  | 
|  REPLACE(chaîne, modèle, remplacement)  |  REPLACE(chaîne, modèle, remplacement)  | 
|  DATE\$1TIME()  |  ToDate()  | 
|  DURATION(dt, dt2)  |  WeeksBetween(dt, dt2), YearsBetween (dt, dt2), SecondsBetween (dt, dt2), (dt, dt2), MonthsBetween (dt, dt2), MinutesBetween (dt, dt2) HoursBetween  | 
|  EXTRACT\$1DT(format, date)  |  GetHour(date), GetMinute (date), GetMonth (date), GetSecond (date), GetWeek (date), GetYear (date), GetDay (date)  | 
|  OFFSET\$1DT(date, durée)  |  AddDuration(date, durée), SubtractDuration (date, durée)  | 
|  PERIOD(dt, dt2)  |  WeeksBetween(dt, dt2), YearsBetween (dt, dt2), SecondsBetween (dt, dt2), (dt, dt2), MonthsBetween (dt, dt2), MinutesBetween (dt, dt2) HoursBetween  | 
|  CAPITALIZE(chaîne)  |  UCFIRST(chaîne)  | 
|  CONCAT\$1WITH()  |  CONCAT()  | 
|  INDEX\$1OF()  |  INDEXOF()  | 
|  LAST\$1INDEX\$1OF()  |  LAST\$1INDEXOF()  | 
|  SPLIT\$1ON\$1REGEX()  |  STRSPLT()  | 
|  UNCAPITALIZE()  |  LCFIRST()  | 

Les éléments suivants UDFs ont été supprimés sans équivalent : FORMAT (), LOCAL\$1DATE (), LOCAL\$1TIME (), CENTER (), LEFT\$1PAD (), REPEAT (), REPLACE\$1ONCE (), RIGHT\$1PAD (), STRIP\$1END (), STRIP\$1START (), SWAP\$1CASE ().

## Commandes Grunt abandonnées
<a name="emr-pig-gruntcmd-4x"></a>

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 | 
| --- | --- | 
|  chat (< 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 -SipTrash < > ; non-hdfs-path  | 
|  rmf < non-hdfs-path > ;  |  fs -rm -r -SipTrash < > ; non-hdfs-path  | 

## Capacités supprimées pour les répertoires de base non HDFS
<a name="emr-Pig-users-4x"></a>

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`.