Я пытаюсь найти популярное направление, куда большее количество людей обращалось с помощью API DataStream.
Мои данные будут в формате ниже
Формат ввода:
идентификатор кабины, номер кабины, тип кабины, имя водителя кабины, текущая поездка / нет, место посадки, пункт назначения, количество пассажиров
Я попытался решить вышеуказанную проблему с помощью оператора keyBy () и связал ее с помощью операторов sum () и max (). Но я заметил, что я могу использовать только одну агрегатную функцию в ключевом потоке. Когда я попробовал обе агрегатные функции, компилятор выдает сообщение об ошибке.
Когда я попробовал описанную выше проблему, используя DataSet API с использованием функции groupBy (), я смог использовать вместе sum () и MaxBy ().
Код API DataStream
SingleOutputStreamOperator<Tuple8<String, String, String, String, Boolean, String, String, Integer>> stream=
environment.readTextFile("path")
.map(new MapRideData())
.filter(new FilterObject())
.keyBy(6)
.sum(7)
.max(7);
DataSet API - нет проблем с кодом ниже
DataSet<Tuple8<String, String, String, String, Boolean, String, String, Integer>> destination =
data.groupBy(6)
.sum(7)
.maxBy(7);