Набор данных Spark объединяет несколько строк

#java #apache-spark #dataset

#java #apache-spark #набор данных

Вопрос:

Это мой набор данных,

 Name Group         Age
A    [123]          10
B.   [123,456]      20
C.   [456,789]      30
D.   [900]          40
E.   [800,900]      50
F.   [1000]         60
  

Теперь я хочу объединить Group так, чтобы результат выглядел так

  Name       Group                    Age
    A,B,C    [123,456,789]          10,20,30
    D,E      [900,800]              40,50
    F.       [1000]                 60
  

Я пробовал содержать массивы, но это не дает мне того, что я хочу. Я тоже попробовал присоединиться. Любой может помочь с решением Java.

Редактировать:

Я нашел ReduceFunction, которая может сделать что-то подобное.

 dataset.reduce(new ReduceFunction<Grouped>(){

            private static final long serialVersionUID = 8289076985320745158L;
            @Override
            public Grouped call(final Grouped v1, final Grouped v2) {

            if (!Collections.disjoint(v1.getGroup(), (v2.getGroup()))) 
               {
                    v1.getAge().addAll(v2.getAge());
                    v1.getGroup().addAll(v2.getGroup());
                    v1.getName().addAll(v2.getName());

                }
 }
  

}

Но как это сделать для всех строк???

Это может дать мне первые 2 строки, уменьшенные до :

 Name   Group         Age
A,B    [123,456]          10,20
      
  

Комментарии:

1. проще в scala. это вариант, из которого вы можете клонировать?

2. я нашел решение scala, но я не могу преобразовать его в java. 🙁

3. Я советую пропустить java с помощью spark

4. не могли бы вы предоставить имеющееся у вас решение scala. Я могу попробовать

5. Ok скоро даст ему aburl