为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕哥9229398 2021-09-12 15:42:49
使用 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 中实现上述输出。有人可以帮忙吗?谢谢。
查看完整描述

2 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

分组前可以使用“explode”函数:

df.withColumn("values", explode($"values")).groupBy("id").agg(collect_list($"values"))


查看完整回答
反对 回复 2021-09-12
  • 2 回答
  • 0 关注
  • 138 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信