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à.
comando parse
Il parse
comando analizza un campo di testo con un'espressione regolare e aggiunge il risultato al risultato della ricerca.
Nota
Per vedere quali integrazioni di fonti di AWS dati supportano questo PPL comando, consulta. Comandi
Sintassi
Utilizzare la seguente sintassi:
parse <field> <pattern>
field
-
Obbligatorio.
-
Il campo deve essere un campo di testo.
pattern
-
Stringa obbligatoria.
-
Questo è il modello di espressione regolare usato per estrarre nuovi campi dal campo di testo specificato.
-
Se esiste già un nuovo nome di campo, sostituirà il campo originale.
Espressione regolare
Il modello di espressione regolare viene utilizzato per abbinare l'intero campo di testo di ogni documento con il motore regex Java. Ogni gruppo di acquisizione denominato nell'espressione diventerà un nuovo STRING
campo.
Esempio 1: creare un nuovo campo
L'esempio mostra come creare un nuovo campo host
per ogni documento. host
sarà il nome host dopo @
nel email
campo. L'analisi di un campo nullo restituirà una stringa vuota.
PPLinterrogazione:
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 | +-----------------------+-------------+
Esempio 2: sovrascrivi un campo esistente
L'esempio mostra come sostituire il address
campo esistente con il numero civico rimosso.
PPLinterrogazione:
os> source=accounts | parse address '\d+ (?<address>.+)' | fields address ; fetched rows / total rows = 4/4 +------------------+ | address | |------------------| | Example Lane | | Example Street | | Example Avenue | | Example Court | +------------------+
Esempio 3: filtra e ordina per campo analizzato
L'esempio mostra come ordinare i numeri civici che sono superiori a 500 nel address
campo.
PPLinterrogazione:
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 | +----------------+----------------+
Limitazioni
Esistono alcune limitazioni con il comando parse:
-
I campi definiti da parse non possono essere analizzati nuovamente.
Il seguente comando non funzionerà:
source=accounts | parse address '\d+ (?<street>.+)' | parse street '\w+ (?<road>\w+)'
-
I campi definiti da parse non possono essere sovrascritti con altri comandi.
where
non corrisponderà a nessun documento poiché nonstreet
può essere sovrascritto:source=accounts | parse address '\d+ (?<street>.+)' | eval street='1' | where street='1' ;
-
Il campo di testo utilizzato da parse non può essere sovrascritto.
street
non verrà analizzato correttamente poiché è stato sovrascritto:address
source=accounts | parse address '\d+ (?<street>.+)' | eval address='1' ;
-
I campi definiti da parse non possono essere filtrati o ordinati dopo averli utilizzati nel comando.
stats
where
nel seguente comando non funzionerà:source=accounts | parse email '.+@(?<host>.+)' | stats avg(age) by host | where host=pyrami.com ;