

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Considerazioni sull'utilizzo di Pig su Amazon EMR 4.x
<a name="emr-Pig-4x"></a>

Pig versione 0.14.0 è installato su cluster creati utilizzando versioni del rilascio di Amazon EMR 4.x. Pig è stato aggiornato alla versione 0.16.0 in Amazon EMR 5.0.0. Di seguito vengono descritte le differenze significative.

## Motore di esecuzione predefinito diverso
<a name="emr-Pig-engine-4x"></a>

La versione 0.14.0 di Pig nelle versioni di rilascio di Amazon EMR 4.x viene utilizzata MapReduce come motore di esecuzione predefinito. Pig versione 0.16.0 e successive utilizzano Apache Tez. È possibile impostare in modo esplicito la classificazione di configurazione da `exectype=mapreduce` utilizzare. `pig-properties` MapReduce

## Funzioni definite dall'utente Dropped Pig () UDFs
<a name="emr-Pig-udf-4x"></a>

Le versioni personalizzate UDFs disponibili in Pig on Amazon EMR 4.x sono state eliminate a partire da Pig 0.16.0. La maggior parte di esse dispone invece di funzioni equivalenti UDFs che è possibile utilizzare. La tabella seguente elenca le funzioni abbandonate UDFs ed equivalenti. Per ulteriori informazioni, consulta [Built-in functions (Funzioni integrate)](https://pig.apache.org/docs/r0.16.0/func.html) sul sito Apache Pig.


| FDU interrotta | Funzione equivalente | 
| --- | --- | 
| FORMAT\_DT(dtformat, date) | GetHour(data), GetMinute (data), GetMonth (data), GetSecond (data), GetWeek (data), GetYear (data), GetDay (data) | 
| EXTRACT(string, pattern) | 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), (data), GetMinute (data), GetMonth (data), (data), GetSecond (data), (data) GetWeek GetYear GetDay | 
| OFFSET\_DT(date, duration) | AddDuration(data, durata), SubtractDuration (data, durata) | 
| 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() | 

Quanto segue è UDFs stato eliminato senza equivalenti: FORMAT (), LOCAL\_DATE (), LOCAL\_TIME (), CENTER (), LEFT\_PAD (), REPEAT (), REPLACE\_ONCE (), RIGHT\_PAD (), STRIP (), STRIP\_END (), STRIP\_START (), SWAP\_CASE ().

## Comandi Grunt non più disponibili
<a name="emr-pig-gruntcmd-4x"></a>

Alcuni comandi Grunt non sono più disponibili a partire da Pig 0.16.0. Nella tabella seguente vengono elencati i comandi Grunt in Pig 0.14.0 e i comandi equivalenti nella versione corrente, dove applicabile. 


**Pig 0.14.0 e comandi Grunt correnti equivalenti**  

| Comando Grunt Pig 0.14.0 | Comando Grunt in Pig 0.16.0 e versioni successive | 
| --- | --- | 
| cat non-hdfs-path (< >) | fs -cat < non-hdfs-path >; | 
| cd < non-hdfs-path >; | Nessun equivalente | 
| ls < non-hdfs-path >; | fs -ls < non-hdfs-path >; | 
| sposta < non-hdfs-path > < non-hdfs-path >; | fs -mv < non-hdfs-path > < non-hdfs-path >; | 
| copia < non-hdfs-path > < non-hdfs-path >; | fs -cp < non-hdfs-path > < non-hdfs-path >; | 
| copyToLocal <local-path>< non-hdfs-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 | 
| non-hdfs-pathrmf < >; | fs -rm -r -SkipTrash < >; non-hdfs-path | 

## Funzionalità rimosse per home directory non HDFS
<a name="emr-Pig-users-4x"></a>

Pig 0.14.0 su versioni del rilascio 4.x di Amazon EMR dispone di due meccanismi per consentire a utenti diversi dall'utente `hadoop`, che non dispongono di home directory, di eseguire script Pig. Il primo meccanismo è un fallback automatico che consente di impostare la directory di lavoro iniziale sulla directory principale se la home directory non esiste. Il secondo è una proprietà `pig.initial.fs.name` che consente di modificare la directory di lavoro iniziale.

Questi meccanismi non sono disponibili a partire da Amazon EMR versione 5.0.0 e gli utenti devono disporre di una home directory su HDFS. Ciò non si applica all'utente `hadoop`, perché una home directory viene fornita all'avvio. Gli script eseguiti utilizzando fasi jar Hadoop sono impostati per default sull'utente Hadoop, a meno che non venga specificato in modo esplicito un altro utente utilizzando `command-runner.jar`.