Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Группирует набор строк вместе на основе сходства значений.
Для каждой такой группы оператор возвращает pattern
значение , count
и representative
. Лучше pattern
всего описывает группу, в которой *
символ представляет подстановочный знак. Число count
значений в группе и representative
одно из исходных значений в группе.
Синтаксис
T|
reduce
[kind
=
ReduceKind] Exprby
[ with
threshold
=
]]
Дополнительные сведения о соглашениях синтаксиса.
Параметры
Имя (название) | Тип | Обязательно | Описание |
---|---|---|---|
Экспр | string |
✔️ | Значение, по которому требуется уменьшить. |
Порог | real |
Значение от 0 до 1, определяющее минимальную долю строк, необходимых для сопоставления критериев группировки для активации операции сокращения. Значение по умолчанию — 0,1. Параметр порога определяет минимальный уровень сходства, необходимый для группирования значений. С меньшим пороговым значением (ближе к 0), более похожие значения группируются вместе, что приводит к меньшему, но более похожим группам. Для большего порогового значения (ближе к 1) требуется меньше сходства, что приводит к тому, что больше групп, которые менее похожи. Рекомендуется задать небольшое пороговое значение для больших входных данных. См. примеры. |
|
Символы | string |
Список символов, разделяющих термины. По умолчанию используется каждый числовый символ, отличный от ascii. Примеры см. в разделе Примеры. | |
ReduceKind | string |
Единственным допустимым значением является source . Если source задано, оператор добавляет Pattern столбец к существующим строкам таблицы вместо агрегирования Pattern . |
Возвраты
Таблица с столько строк, сколько есть группы и столбцы с заголовком pattern
, count
и representative
. Лучше pattern
всего описывает группу, в которой *
символ представляет подстановочный знак или заполнитель для произвольной строки вставки. Число count
значений в группе и representative
одно из исходных значений в группе.
Например, результат выполнения reduce by city
может быть таким:
Расписание | Численность | Уполномоченный |
---|---|---|
Сан * | 5182 | Сан-Бернард |
Сант * | 2846 | Сент-Люси |
Москва | 3726 | Москва |
*-на-* | 2730 | One -on- One |
Париж | 2716 | Париж |
Примеры
В этом разделе показано, как использовать синтаксис для начала работы.
Примеры, приведенные в этой статье, используют общедоступные таблицы в кластера, например таблицу
StormEvents
в базе данных Samples.
В примерах этой статьи используются общедоступные таблицы, такие как таблица
StormEvents
в аналитике погоды примеры данных.
В следующем примере создается диапазон чисел, создается новый столбец с объединенными строками и случайными целыми числами, а затем группирует строки по новому столбцу с определенными параметрами сокращения. Пороговое значение равно 0,001, что означает, что значения операторов группируются очень похожи друг на друга.
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"
Выходные данные
Расписание | Численность | Уполномоченный |
---|---|---|
MachineLearning* | 1000 | MachineLearningX4 |
В следующем примере создается диапазон чисел, создается новый столбец с объединенными строками и случайными целыми числами, а затем группирует строки по новому столбцу с определенными параметрами сокращения. Пороговое значение имеет значение 0,9, что означает, что оператор группируется вместе со значениями менее строго и обеспечивает более дисперсию.
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"
Выходные данные
Результат включает только те группы, в которых значение MyText отображается по крайней мере в 90% строк.
Расписание | Численность | Уполномоченный |
---|---|---|
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 |
Если параметр Characters не указан, оператор по умолчанию обрабатывает все небуквенно-цифровые символы (включая пробелы и знаки препинания) в качестве разделителей терминов.
В следующем примере показано, как reduce
работает оператор, если параметр Characters не указан.
range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str
Выходные данные
Расписание | Численность | Уполномоченный |
---|---|---|
и так далее. | 10 |
Однако если указать, что "Z" является разделителем, то это как если бы каждое значение в str
является двумя терминами: foo
и tostring(x)
:
range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str with characters="Z"
Выходные данные
Расписание | Численность | Уполномоченный |
---|---|---|
foo* | 10 | fooZ1 |
В следующем примере показано, как можно применить оператор reduce
к входным данным, в которых идентификаторы GUID в столбце заменяются перед сокращением:
Начните с нескольких записей из таблицы трассировки. Затем уменьшите текстовый столбец, включающий случайные идентификаторы GUID. Так как случайные идентификаторы GUID вмешиваются в операцию уменьшения, замените их всеми строкой GUID. Теперь выполните операцию уменьшения. В случае, если в них есть другие идентификаторы quasi-random с внедренными символами "-" или "_", обрабатывают символы как несрочные разрывы.
Trace
| take 10000
| extend Text = replace(@"[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}", "GUID", Text)
| reduce by Text with characters="-_"
Связанный контент
Примечание.
Реализация оператора в значительной reduce
степени основана на документе Алгоритм кластеризации данных для шаблонов интеллектуального анализа данных из журналов событий Risto Vaarandi.