

# SerDe de Regex
<a name="regex-serde"></a>

SerDe de Regex utiliza una expresión regular (regex) para deserializar datos extrayendo grupos de expresiones regulares en columnas de tabla. 

Si una fila de los datos no coincide con la expresión regular, todas las columnas de la fila se devuelven como `NULL`. Si una fila coincide con la expresión regular pero tiene menos grupos de los esperados, los grupos que faltan son `NULL`. Si una fila de los datos coincide con la expresión regular pero tiene más columnas que grupos en la expresión regular, se ignoran las columnas adicionales. 

Para obtener más información, consulte [Class RegexSerDe](https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r1.2.2/api/org/apache/hadoop/hive/serde2/RegexSerDe.html) en la documentación de Apache Hive.

## Nombre de la biblioteca de serialización
<a name="regex-serde-library-name"></a>

El nombre de la biblioteca de serialización de SerDe de Regex es `org.apache.hadoop.hive.serde2.RegexSerDe`. Para obtener información sobre el código fuente, consulte [Class RegexSerDe](https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r1.2.2/api/org/apache/hadoop/hive/serde2/RegexSerDe.html) en la documentación de Apache. 

## Ejemplo
<a name="regex-serde-examples"></a>

En el ejemplo siguiente se crea una tabla a partir de registros de CloudFront mediante RegExSerDe. Reemplace *myregion* en `s3://athena-examples-myregion/cloudfront/plaintext/` por el identificador de región donde se ejecuta Athena (por ejemplo, `s3://athena-examples-us-west-1/cloudfront/plaintext/`).

```
CREATE EXTERNAL TABLE IF NOT EXISTS cloudfront_logs (
  `Date` DATE,
  Time STRING,
  Location STRING,
  Bytes INT,
  RequestIP STRING,
  Method STRING,
  Host STRING,
  Uri STRING,
  Status INT,
  Referrer STRING,
  os STRING,
  Browser STRING,
  BrowserVersion STRING
 ) 
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'
 WITH SERDEPROPERTIES (
 "input.regex" = "^(?!#)([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+[^\(]+[\(]([^\;]+).*\%20([^\/]+)[\/](.*)$"
 ) 
LOCATION 's3://athena-examples-myregion/cloudfront/plaintext/';
```