Можно в каскаде. Предположим, ваши имена полей (url, count). Примените функцию, чтобы добавить еще одно поле с именем «домен», которое содержит значение google, если строка содержит слово google, и удалите поле URL. Теперь, если вам не нужны другие домены, отфильтруйте их. Итак, теперь у вас есть два поля (домен, количество), где домен содержит только слово google.
Теперь используйте функции каскадирования AggregateBy(), SumBy().
SumBy any_name = new SumBy(field_name_to_sum , field_name_after_sum , класс dataType);
Pipe result = new AggregateBy("name" , Pipe.pipes(sourcePipeName) , name_of_groupBy_field , number_of_SumBy_instances , name_of_sumBy_instance);
в вашем случае это становится
SumBy xyz = new SumBy(new Fields("count") , new Fields("combined_count") , Integer.class);
Pipe result = new AggregateBy("result" , Pipe.pipes(sourcePipeName) , new Fields("domain") , 1 , xyz);
Итак, теперь канал результатов содержит одну строку (google,count)
Таким образом, приведенный выше фрагмент кода будет работать аналогично приведенному ниже SQL-запросу.
выбрать домен,сумма(количество) из исходной группы по домену;
person
jaydeep dugar
schedule
02.02.2018