

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Consideraciones sobre el uso de Pig en Amazon EMR 4.x
<a name="emr-Pig-4x"></a>

La versión 0.14.0 de Pig se instala en los clústeres creados con versiones 4.x de Amazon EMR. Pig se ha actualizado a la versión 0.16.0 en la versión 5.0.0 de Amazon EMR. Las diferencias significativas se explican a continuación.

## Motor de ejecución predeterminado diferente
<a name="emr-Pig-engine-4x"></a>

La versión 0.14.0 de Pig en las versiones 4.x de Amazon EMR utiliza MapReduce como motor de ejecución predeterminado. Pig 0.16.0 y versiones posteriores utilizan Apache Tez. Puede establecer de forma explícita la clasificación de `pig-properties` configuración que `exectype=mapreduce` se va a utilizar. MapReduce

## Funciones definidas por el usuario de Dropped Pig () UDFs
<a name="emr-Pig-udf-4x"></a>

Las versiones personalizadas UDFs que estaban disponibles en las versiones 4.x de Pig on Amazon EMR se eliminaron a partir de Pig 0.16.0. La mayoría de ellas UDFs tienen funciones equivalentes que puede utilizar en su lugar. En la siguiente tabla se enumeran las funciones UDFs omitidas y las equivalentes. Para más información, consulte [Funciones integradas](https://pig.apache.org/docs/r0.16.0/func.html) en el sitio de Apache Pig.


| UDF abandonada | Función equivalente | 
| --- | --- | 
|  FORMAT\$1DT(dtformat, date)  |  GetHour(fecha), GetMinute (fecha), GetMonth (fecha), GetSecond GetWeek (fecha), GetYear (fecha), GetDay (fecha)  | 
|  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), SecondsBetween (dt, dt2), (dt, dt2), MonthsBetween (dt, dt2), MinutesBetween (dt, dt2) HoursBetween  | 
|  EXTRACT\$1DT(format, date)  |  GetHour(fecha), GetMinute (fecha), GetMonth (fecha), GetSecond (fecha), GetWeek (fecha), GetYear (fecha) GetDay  | 
|  OFFSET\$1DT(date, duration)  |  AddDuration(fecha, duración), SubtractDuration (fecha, duración)  | 
|  PERIOD(dt, dt2)  |  WeeksBetween(dt, dt2), YearsBetween (dt, dt2), SecondsBetween (dt, dt2), (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()  | 

 UDFs Se eliminaron los siguientes sin equivalente: FORMAT (), LOCAL\$1DATE (), LOCAL\$1TIME (), CENTER (), LEFT\$1PAD (), REPEAT (), REPLACE\$1ONCE (), RIGHT\$1PAD (), STRIP (), STRIP\$1END (), STRIP\$1START (), SWAP\$1CASE ().

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

Algunos comandos de Grunt se han dejado de utilizar a partir de Pig 0.16.0. En la siguiente tabla, se muestran comandos de Grunt en Pig 0.14.0 y los comandos equivalentes en la versión actual, si procede. 


**Pig 0.14.0 y los comandos equivalentes de Grunt actuales**  

| Comando de Grunt de Pig 0.14.0 | Comando de Grunt de Pig en 0.16.0 y versiones posteriores | 
| --- | --- | 
|  cat non-hdfs-path (< >)  |  fs -cat < non-hdfs-path >;  | 
| cd < non-hdfs-path >; |  Sin 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 <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  | 

## Se ha eliminado la capacidad de directorios de inicio que no son de HDFS
<a name="emr-Pig-users-4x"></a>

Pig 0.14.0 en las versiones 4.x de Amazon EMR tiene dos mecanismos que permiten a los usuarios distintos del usuario `hadoop`, que no tienen directorios de inicio, ejecutar scripts de Pig. El primer mecanismo es una reserva automática que establece el directorio de trabajo inicial en el directorio raíz si el directorio de inicio no existe. El segundo es una propiedad `pig.initial.fs.name` que le permite cambiar el directorio de trabajo inicial.

Estos mecanismos no están disponibles a partir de la versión 5.0.0 de Amazon EMR y los usuarios deben tener un directorio de inicio en HDFS. Esto no se aplica al usuario de `hadoop`, ya que se aprovisiona un directorio de inicio en el lanzamiento. La ejecución de scripts con pasos de Hadoop jar adopta de manera predeterminada el usuario de Hadoop, a menos que se especifique otro usuario mediante `command-runner.jar`.