

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Considerações sobre o uso do Pig no Amazon EMR 4.x
<a name="emr-Pig-4x"></a>

O Pig versão 0.14.0 é instalado em clusters criados usando versões 4.x do Amazon EMR. O Pig foi atualizado para a versão 0.16.0 no Amazon EMR 5.0.0. As diferenças significativas são abordadas abaixo.

## Mecanismo de execução padrão diferente
<a name="emr-Pig-engine-4x"></a>

A versão 0.14.0 do Pig nas versões 4.x do Amazon EMR é usada MapReduce como mecanismo de execução padrão. O Pig 0.16.0 e versões posteriores usam o Apache Tez. Você pode definir explicitamente a classificação `exectype=mapreduce` de `pig-properties` configuração a ser usada MapReduce.

## Funções definidas pelo usuário do Dropped Pig () UDFs
<a name="emr-Pig-udf-4x"></a>

As versões personalizadas UDFs que estavam disponíveis no Pig no Amazon EMR 4.x foram descartadas a partir do Pig 0.16.0. A maioria deles UDFs tem funções equivalentes que você pode usar em vez disso. A tabela a seguir lista funções descartadas UDFs e equivalentes. Para obter mais informações, consulte [Funções integradas](https://pig.apache.org/docs/r0.16.0/func.html) no site do Apache Pig.


| UDF descartada | Função equivalente | 
| --- | --- | 
| FORMAT\_DT(dtformat, date) | GetHour(data), GetMinute (data), GetMonth (data), GetSecond (data), GetWeek (data), GetYear (data), GetDay (data) | 
| EXTRACT(string, padrão) | REGEX\_EXTRACT\_ALL(string, pattern) | 
| REPLACE(string, pattern, replacement) | REPLACE(string, pattern, replacement) | 
| DATE\_TIME() | ToDate() | 
| DURATION(dt, dt2) | WeeksBetween(dt, dt2), YearsBetween (dt, dt2), (dt, dt2), SecondsBetween (dt, dt2), MonthsBetween (dt, dt2), MinutesBetween (dt, dt2) HoursBetween | 
| EXTRACT\_DT(format, date) | GetHour(data), GetMinute (data), GetMonth (data), GetSecond (data), GetWeek (data), GetYear (data), GetDay (data) | 
| OFFSET\_DT(date, duration) | AddDuration(data, duração), SubtractDuration (data, duração) | 
| PERIOD(dt, dt2) | WeeksBetween(dt, dt2), YearsBetween (dt, dt2), (dt, dt2), SecondsBetween (dt, dt2), MonthsBetween (dt, dt2), MinutesBetween (dt, dt2) HoursBetween | 
| CAPITALIZE(string) | UCFIRST(string) | 
| CONCAT\_WITH() | CONCAT() | 
| INDEX\_OF() | INDEXOF() | 
| LAST\_INDEX\_OF() | LAST\_INDEXOF() | 
| SPLIT\_ON\_REGEX() | STRSPLT() | 
| UNCAPITALIZE() | LCFIRST() | 

Os itens a seguir UDFs foram eliminados sem equivalente: FORMAT (), LOCAL\_DATE (), LOCAL\_TIME (), CENTER (), LEFT\_PAD (), REPEAT (), REPLACE\_ONCE (), RIGHT\_PAD (), STRIP (), STRIP\_END (), STRIP\_START (), SWAP\_CASE ().

## Comandos Grunt descontinuados
<a name="emr-pig-gruntcmd-4x"></a>

Alguns comandos Grunt foram descontinuados a partir do Pig 0.16.0. A tabela a seguir lista os comandos Grunt no Pig 0.14.0 e os comandos equivalentes na versão atual, quando aplicável. 


**Comandos Grunt do Pig 0.14.0 e seus equivalentes atuais**  

| Comando Grunt do Pig 0.14.0 | Comando Grunt do Pig 0.16.0 e versões posteriores | 
| --- | --- | 
| gato < non-hdfs-path >) | fs -cat < non-hdfs-path >; | 
| cd < non-hdfs-path >; | Não há equivalente | 
| ls < non-hdfs-path >; | fs -ls < non-hdfs-path >; | 
| mover < non-hdfs-path > < non-hdfs-path >; | fs -mv < non-hdfs-path > < >; non-hdfs-path | 
| copiar < 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 | 

## Capacidade removida para diretórios iniciais não HDFS
<a name="emr-Pig-users-4x"></a>

O Pig 0.14.0 nas versões 4.x do Amazon EMR tem dois mecanismos para permitir a execução de scripts do Pig por usuários que não sejam o usuário do `hadoop` e não tenham diretórios iniciais. O primeiro mecanismo é um fallback automático que define o diretório de trabalho inicial como o diretório raiz caso o diretório inicial não exista. O segunda é uma propriedade `pig.initial.fs.name` que permite alterar o diretório de trabalho inicial.

Esses mecanismos não estão disponíveis desde a versão 5.0.0 do Amazon EMR e os usuários devem ter um diretório inicial no HDFS. Isso não se aplica ao usuário `hadoop`, pois um diretório inicial é provisionado na execução. Os scripts executados usando etapas JAR do Hadoop assumem como padrão o usuário do Hadoop, a menos que outro usuário seja especificado explicitamente com o uso de `command-runner.jar`.