

# Ejemplos de extractores de rutas
<a name="ion-serde-examples"></a>

En los ejemplos siguientes de extractores de rutas se muestra cómo aplanar los campos y cambiarles el nombre o extraer datos como texto de Amazon Ion.

## Aplanado y cambio de nombre de los campos
<a name="ion-serde-flattening-and-renaming-fields"></a>

En el siguiente ejemplo, se muestra un conjunto de rutas de búsqueda que aplanan y cambian los nombres de los campos. En el ejemplo, se utilizan las rutas de búsqueda para hacer lo siguiente:
+ asignar la columna `nickname` al campo `alias` y
+ asignar la columna `name` al subcampo `name` ubicado en la estructura `identification`.

A continuación, se presenta el documento de Amazon Ion de ejemplo.

```
-- Example Amazon Ion Document
{
    identification: {
        name: "John Smith",
        driver_license: "XXXX"
    },
    
    alias: "Johnny"    
}
```

A continuación, se muestra la instrucción `CREATE TABLE` de ejemplo que define los extractores de rutas.

```
-- Example DDL Query
CREATE EXTERNAL TABLE example_schema2 (
    name STRING,
    nickname STRING
)
ROW FORMAT SERDE
 'com.amazon.ionhiveserde.IonHiveSerDe'
WITH SERDEPROPERTIES (
 'ion.nickname.path_extractor' = '(alias)',
 'ion.name.path_extractor' = '(identification name)'
 )
STORED AS ION
LOCATION 's3://amzn-s3-demo-bucket/path_extraction2/'
```

En el siguiente ejemplo, se muestran los datos extraídos.

```
-- Extracted Table
| name         |   nickname   |
|--------------|--------------|
| "John Smith" |  "Johnny"    |
```

Para obtener más información sobre las rutas de búsqueda y ejemplos de rutas de búsqueda adicionales, consulte [Extracción de rutas Ion Java](https://github.com/amzn/ion-java-path-extraction) en GitHub.

## Extracción de datos de vuelo en formato de texto
<a name="ion-serde-extracting-flight-data-to-text-format"></a>

En el siguiente ejemplo, la consulta `CREATE TABLE` utiliza `WITH SERDEPROPERTIES` para agregar extractores de rutas con el objetivo de extraer datos de vuelo y especificar la codificación de salida como texto de Amazon Ion. En el ejemplo se utiliza la sintaxis `STORED AS ION`.

```
CREATE EXTERNAL TABLE flights_ion (
    yr INT,
    quarter INT,
    month INT,
    dayofmonth INT,
    dayofweek INT,
    flightdate STRING,
    uniquecarrier STRING,
    airlineid INT,
)
ROW FORMAT SERDE
 'com.amazon.ionhiveserde.IonHiveSerDe'
WITH SERDEPROPERTIES (
 'ion.encoding' = 'TEXT',
 'ion.yr.path_extractor'='(year)',
 'ion.quarter.path_extractor'='(results quarter)',
 'ion.month.path_extractor'='(date month)')
STORED AS ION
LOCATION 's3://amzn-s3-demo-bucket/'
```