Java 如何在spark数据帧的嵌套阵列上设计UDAF

Java 如何在spark数据帧的嵌套阵列上设计UDAF,java,apache-spark,apache-spark-sql,spark-dataframe,Java,Apache Spark,Apache Spark Sql,Spark Dataframe,输入数据: +---+----+----+ |idx| v1| v2| +---+----+----+ | a| 1| 3| | a|null| 2| | a| 4| 5| | b| 6| 1| | b| 7|null| +---+----+----+ 我想要的是: +---+-------------------------------------------+ |idx|total

输入数据:

+---+----+----+
|idx|  v1|  v2|
+---+----+----+
|  a|   1|   3|
|  a|null|   2|
|  a|   4|   5|
|  b|   6|   1|
|  b|   7|null|
+---+----+----+
我想要的是:

+---+-------------------------------------------+                               
|idx|total                                      |
+---+-------------------------------------------+
|b  |[WrappedArray(6, 7), WrappedArray(1)]      |
|a  |[WrappedArray(1, 4), WrappedArray(3, 2, 5)]|
+---+-------------------------------------------+
我知道我可以通过

df.groupBy("idx").agg(array(collect_list(col("v1")), collect_list(col("v2"))));
但是我想通过JAVA中的UDAF实现这个结果