

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\$1DT(dtformat, date)  |  GetHour(data), GetMinute (data), GetMonth (data), GetSecond (data), GetWeek (data), GetYear (data), GetDay (data)  | 
|  EXTRACT(string, pattern)  |  REGEX\$1EXTRACT\$1ALL(string, pattern)  | 
|  REPLACE(string, pattern, replacement)  |  REPLACE(string, pattern, replacement)  | 
|  DATE\$1TIME()  |  ToDate()  | 
|  DURATION(dt, dt2)  |  WeeksBetween(dt, dt2), YearsBetween (dt, dt2), (dt, dt2), SecondsBetween (dt, dt2), MonthsBetween (dt, dt2), MinutesBetween (dt, dt2) HoursBetween  | 
|  EXTRACT\$1DT(format, date)  |  GetHour(data), (data), GetMinute (data), GetMonth (data), (data), GetSecond (data), (data) GetWeek GetYear GetDay  | 
|  OFFSET\$1DT(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\$1WITH()  |  CONCAT()  | 
|  INDEX\$1OF()  |  INDEXOF()  | 
|  LAST\$1INDEX\$1OF()  |  LAST\$1INDEXOF()  | 
|  SPLIT\$1ON\$1REGEX()  |  STRSPLT()  | 
|  UNCAPITALIZE()  |  LCFIRST()  | 

Quanto segue è UDFs stato eliminato senza equivalenti: FORMAT (), LOCAL\$1DATE (), LOCAL\$1TIME (), CENTER (), LEFT\$1PAD (), REPEAT (), REPLACE\$1ONCE (), RIGHT\$1PAD (), STRIP (), STRIP\$1END (), STRIP\$1START (), SWAP\$1CASE ().

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