猿问

如何在java中展平spark数据集中的包裹数组

使用 Spark 2.2 Java 1.8


我需要收集数组列的集合。但它给了我 WrappedArray。请参阅下文。


Dataset<Row> df2 = df.groupBy("id").agg(collect_list("values"))

df2.show(truncate=False)

# +-----+----------------------------------------------+ 

# |id|                         collect_list(values) | 

# +-----+----------------------------------------------+ 

# |1    |[WrappedArray(1, 2, 3), WrappedArray(4, 5, 6)]| 

# |2    |[WrappedArray(2), WrappedArray(3)]            | 

# +-----+----------------------------------------------+


Expected output : = 


# +-----+------------------+

# |store|           values |

# +-----+------------------+

# |1    |[1, 2, 3, 4, 5, 6]|

# |2    |[2, 3]            |

# +-----+------------------+

我们如何在 spark java 中实现上述输出。有人可以帮忙吗?谢谢。


慕哥9229398
浏览 139回答 2
2回答

拉丁的传说

分组前可以使用“explode”函数:df.withColumn("values",&nbsp;explode($"values")).groupBy("id").agg(collect_list($"values"))
随时随地看视频慕课网APP

相关分类

Java
我要回答