Operatore reduce
Raggruppa un set di stringhe in base alla somiglianza dei valori.
Per ogni gruppo di questo tipo, l'operatore restituisce un pattern
oggetto , count
e representative
. Descrive pattern
meglio il gruppo, in cui il *
carattere rappresenta un carattere jolly. count
è il numero di valori nel gruppo e representative
è uno dei valori originali nel gruppo.
Sintassi
T|
reduce
[kind
=
ReduceKind] by
Expr [with
[threshold
=
Threshold] [,
characters
=
Characters]]
Altre informazioni sulle convenzioni di sintassi.
Parametri
Nome | Tipo | Obbligatoria | Descrizione |
---|---|---|---|
Expr | string |
✔️ | Valore in base al quale ridurre. |
Soglia | real |
Valore compreso tra 0 e 1 che determina la frazione minima di righe necessarie per soddisfare i criteri di raggruppamento per attivare un'operazione di riduzione. Il valore predefinito è 0,1. È consigliabile impostare un valore soglia ridotto per gli input di grandi dimensioni. Con un valore soglia inferiore, i valori più simili vengono raggruppati, con un numero minore di gruppi ma più simili. Un valore soglia maggiore richiede meno somiglianza, con un numero maggiore di gruppi meno simili. Vedere Esempi. |
|
Caratteri | string |
Elenco di caratteri che separano i termini. Il valore predefinito è ogni carattere numerico non ascii. Per esempi, vedere Comportamento del parametro Characters. | |
ReduceKind | string |
L'unico valore valido è source . Se source viene specificato , l'operatore aggiunge la Pattern colonna alle righe esistenti nella tabella anziché aggregare da Pattern . |
Restituisce
Tabella con il numero di righe in cui sono presenti gruppi e colonne denominate pattern
, count
e representative
. Il pattern
valore migliore descrive il gruppo, in cui il *
carattere rappresenta un carattere jolly o un segnaposto per una stringa di inserimento arbitraria. count
è il numero di valori nel gruppo e representative
è uno dei valori originali nel gruppo.
Ad esempio, il risultato di reduce by city
può includere:
Modello | Conteggio | Representative |
---|---|---|
San * | 5182 | San Bernard |
Saint * | 2846 | San Lucy |
Moscow | 3726 | Moscow |
* -on- * | 2730 | One -on- One |
Parigi | 2716 | Parigi |
Esempio
Valore soglia ridotto
range x from 1 to 1000 step 1
| project MyText = strcat("MachineLearningX", tostring(toint(rand(10))))
| reduce by MyText with threshold=0.001 , characters = "X"
Output
Modello | Conteggio | Representative |
---|---|---|
MachineLearning* | 1000 | MachineLearningX4 |
Valore soglia di grandi dimensioni
range x from 1 to 1000 step 1
| project MyText = strcat("MachineLearningX", tostring(toint(rand(10))))
| reduce by MyText with threshold=0.9 , characters = "X"
Output
Modello | Conteggio | Representative |
---|---|---|
MachineLearning* | 177 | MachineLearningX9 |
MachineLearning* | 102 | MachineLearningX0 |
MachineLearning* | 106 | MachineLearningX1 |
MachineLearning* | 96 | MachineLearningX6 |
MachineLearning* | 110 | MachineLearningX4 |
MachineLearning* | 100 | MachineLearningX3 |
MachineLearning* | 99 | MachineLearningX8 |
MachineLearning* | 104 | MachineLearningX7 |
MachineLearning* | 106 | MachineLearningX2 |
Comportamento del parametro Characters
Se il parametro Characters non è specificato, ogni carattere numerico non ascii diventa un separatore di termini.
range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str
Output
Modello | Conteggio | Representative |
---|---|---|
Altri | 10 |
Tuttavia, se si specifica che "Z" è un separatore, è come se ogni valore in str
è 2 termini: e tostring(x)
: foo
range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str with characters="Z"
Output
Modello | Conteggio | Representative |
---|---|---|
Foo* | 10 | fooZ1 |
Applicare reduce
all'input sanificato
Nell'esempio seguente viene illustrato come applicare l'operatore reduce
a un input "sanificato", in cui i GUID nella colonna ridotta vengono sostituiti prima di ridurre
// Start with a few records from the Trace table.
Trace | take 10000
// We will reduce the Text column which includes random GUIDs.
// As random GUIDs interfere with the reduce operation, replace them all
// by the string "GUID".
| extend Text=replace_regex(Text, @"[[:xdigit:]]{8}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{12}", @"GUID")
// Now perform the reduce. In case there are other "quasi-random" identifiers with embedded '-'
// or '_' characters in them, treat these as non-term-breakers.
| reduce by Text with characters="-_"
Contenuti correlati
Nota
L'implementazione dell'operatore reduce
si basa in gran parte sulla carta A Data Clustering Algorithm for Mining Patterns From Event Logs, di Risto Vaarandi.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per