operator reduce
Mengelompokkan sekumpulan string bersama-sama berdasarkan kesamaan nilai.
Untuk setiap grup tersebut, operator mengembalikan pattern
, , count
dan representative
. Yang pattern
terbaik menggambarkan grup, di mana *
karakter mewakili kartubebas. count
adalah jumlah nilai dalam grup, dan representative
merupakan salah satu nilai asli dalam grup.
Sintaks
T |
reduce
[kind
=
ReduceKind] by
Expr [with
[threshold
=
Threshold] [,
=
characters
Characters]]
Pelajari selengkapnya tentang konvensi sintaksis.
Parameter
Nama | Tipe | Wajib | Deskripsi |
---|---|---|---|
Expr | string |
✔️ | Nilai yang akan dikurangi. |
Ambang | real |
Nilai antara 0 dan 1 yang menentukan pecahan minimum baris yang diperlukan untuk mencocokkan kriteria pengelompokan untuk memicu operasi pengurangan. Nilai defaultnya adalah 0,1. Sebaiknya tetapkan nilai ambang kecil untuk input besar. Dengan nilai ambang yang lebih kecil, nilai yang lebih mirip dikelompokkan bersama-sama, menghasilkan grup yang lebih sedikit tetapi lebih mirip. Nilai ambang yang lebih besar membutuhkan lebih sedikit kesamaan, sehingga menghasilkan lebih banyak grup yang kurang serupa. Lihat Contoh. |
|
Karakter | string |
Daftar karakter yang memisahkan antara istilah. Defaultnya adalah setiap karakter numerik non-ascii. Misalnya, lihat Perilaku parameter Karakter. | |
ReduceKind | string |
Satu-satunya nilai yang valid adalah source . Jika source ditentukan, operator menambahkan Pattern kolom ke baris yang ada dalam tabel alih-alih mengagregasi dengan Pattern . |
Mengembalikan
Tabel dengan baris sebanyak ada grup dan kolom berjudul pattern
, , count
dan representative
. Yang pattern
terbaik menggambarkan grup, di mana *
karakter mewakili kartubebas, atau tempat penampung untuk string penyisipan arbitrer. count
adalah jumlah nilai dalam grup, dan representative
merupakan salah satu nilai asli dalam grup.
Misalnya, hasil dari reduce by city
mungkin mencakup:
Pola | Hitung | Perwakilan |
---|---|---|
San * | 5182 | San Bernard |
Saint * | 2846 | Saint Lucy |
Moscow | 3726 | Moscow |
* -on- * | 2730 | One -on- One |
Paris | 2716 | Paris |
Contoh
Nilai ambang kecil
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"
Hasil
Pola | Hitung | Perwakilan |
---|---|---|
MachineLearning* | 1000 | MachineLearningX4 |
Nilai ambang besar
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"
Hasil
Pola | Hitung | Perwakilan |
---|---|---|
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 |
Perilaku parameter Karakter
Jika parameter Karakter tidak ditentukan, maka setiap karakter numerik non-ascii menjadi pemisah istilah.
range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str
Hasil
Pola | Hitung | Perwakilan |
---|---|---|
Lainnya… | 10 |
Namun, jika Anda menentukan bahwa "Z" adalah pemisah, maka seolah-olah setiap nilai dalam str
adalah 2 istilah: foo
dan tostring(x)
:
range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str with characters="Z"
Hasil
Pola | Hitung | Perwakilan |
---|---|---|
Foo* | 10 | fooZ1 |
Terapkan reduce
ke input yang disanitasi
Contoh berikut menunjukkan kemungkinan salah satu contoh menerapkan operator reduce
ke input yang "disanitasi", yang GUID di kolom yang sedang dikurangi diganti sebelum proses pengurangan
// 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="-_"
Konten terkait
Catatan
Implementasi operator reduce
sebagian besar didasarkan pada makalah A Data Clustering Algorithm for Mining Patterns From Event Logs, karya Risto Vaarandi.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk