изо всех сил пытается обработать дедупликацию после агрегации в потоке искры - PullRequest
0 голосов
/ 15 ноября 2018

1. Потоковые данные поступают из Кафки 2.Потребление через потоковую передачу с использованием искры 3.Первое имя, фамилия, ИД пользователя и имя участника (используя имена участников, я получаю количество участников, например, Марк, Тайсон, 2, Крис, Лиза, Иванка - такздесь число членов 3

каким-то образом мне нужно сделать подсчет его необходимостью. но как я могу удалить дедупликацию после агрегации. Это мое беспокойство

  val df2=df.select(firstname,lastname,membercount,userid)
  df2.writestream.format("console").start().awaitTermination

  or     
 df3.select("*").where("membercount >= 3").dropDuplication("userid")

 // this one is not working , but i need to do the same after
   count only so that in batches same user id will not come again.
   only first time entry i want.

Batch-1 output

  firstname         lastname          member-count            userid

  john              smith                   5                  1
  mark              boucher                 8                  2
  shawn              pollock                3                  3

вывод партии 2

 firstname         lastname           member-count        userid

 john               smith             7  (prev.count 5)         1
shawn               pollock           12  (prev.count 8)        3
chris               jordan            6                         4

// но здесь я хочу серию -2 --------- вывод

1.Возможность заключается в том, что Джон Смит снова подсчитает количество минтая в следующих пакетах, но я не хочу отображать или сохранять выходные данные для следующих пакетов.

то есть, основываясь на идентификаторе пользователя, я хочу ввести для одноготолько время в пакетном выводе и снова пренебрежение тем же пользователем в пакетном выводе имя фамилия фамилия счетчик пользователей ID Крис Джордан 6 4

1 Ответ

0 голосов
/ 15 ноября 2018

Ваш вопрос трудно прочитать, но, насколько я понимаю, вы хотите цикл while с условием?

var a = 10;
while(a < 20){
     println( "Value of a: " + a );
     a = a + 1;
  }

Например напечатает

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19
...