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.
comando parse
El parse
comando analiza un campo de texto con una expresión regular y añade el resultado al resultado de la búsqueda.
nota
Para ver qué integraciones AWS de fuentes de datos admiten este PPL comando, consulte. Comandos
Sintaxis
Utilice la siguiente sintaxis:
parse <field> <pattern>
field
-
Obligatorio.
-
El campo debe ser un campo de texto.
pattern
-
Cadena obligatoria.
-
Este es el patrón de expresión regular que se utiliza para extraer nuevos campos del campo de texto dado.
-
Si ya existe un nombre de campo nuevo, reemplazará al campo original.
Expresión regular
El patrón de expresiones regulares se utiliza para hacer coincidir todo el campo de texto de cada documento con el motor de expresiones regulares de Java. Cada grupo de captura nombrado en la expresión se convertirá en un campo nuevoSTRING
.
Ejemplo 1: Crear un campo nuevo
El ejemplo muestra cómo crear un campo nuevo host
para cada documento. host
será el nombre de host que aparece después @
en el email
campo. Al analizar un campo nulo, se devolverá una cadena vacía.
PPLconsulta:
os> source=accounts | parse email '.+@(?<host>.+)' | fields email, host ; fetched rows / total rows = 4/4 +-----------------------+-------------+ | email | host | |-----------------------+-------------| | jane_doe@example.com | example.com | | john_doe@example.net | example.net | | null | | | juan_li@example.org | example.org | +-----------------------+-------------+
Ejemplo 2: anular un campo existente
El ejemplo muestra cómo anular el address
campo existente quitando el número de calle.
PPLconsulta:
os> source=accounts | parse address '\d+ (?<address>.+)' | fields address ; fetched rows / total rows = 4/4 +------------------+ | address | |------------------| | Example Lane | | Example Street | | Example Avenue | | Example Court | +------------------+
Ejemplo 3: Filtrar y ordenar por campo procesado
El ejemplo muestra cómo ordenar los números de calle superiores a 500 en el address
campo.
PPLconsulta:
os> source=accounts | parse address '(?<streetNumber>\d+) (?<street>.+)' | where cast(streetNumber as int) > 500 | sort num(streetNumber) | fields streetNumber, street ; fetched rows / total rows = 3/3 +----------------+----------------+ | streetNumber | street | |----------------+----------------| | *** | Example Street | | *** | Example Avenue | | 880 | Example Lane | +----------------+----------------+
Limitaciones
El comando parse presenta algunas limitaciones:
-
Los campos definidos por parse no se pueden volver a analizar.
El siguiente comando no funcionará:
source=accounts | parse address '\d+ (?<street>.+)' | parse street '\w+ (?<road>\w+)'
-
Los campos definidos por parse no se pueden anular con otros comandos.
where
no coincidirá con ningún documento ya questreet
no se puede anular:source=accounts | parse address '\d+ (?<street>.+)' | eval street='1' | where street='1' ;
-
El campo de texto utilizado por Parse no se puede anular.
street
no se analizará correctamente yaaddress
que está anulado:source=accounts | parse address '\d+ (?<street>.+)' | eval address='1' ;
-
Los campos definidos por parse no se pueden filtrar ni ordenar después de usarlos en el comando.
stats
where
en el siguiente comando no funcionará:source=accounts | parse email '.+@(?<host>.+)' | stats avg(age) by host | where host=pyrami.com ;