首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以在SPACSQL2.2.0中返回复杂类型?

是否可以在SPACSQL2.2.0中返回复杂类型?
EN

Stack Overflow用户
提问于 2018-02-10 13:27:22
回答 1查看 155关注 0票数 0

联非新议程的返回复杂类型可以吗?比如,使用键作为整数的Map和字符串数组的值?

例如,假设我有以下输入数据

代码语言:javascript
复制
id | name  | amount
-------------------------
1  |  foo  | 10
2  |  bar  | 15
1  |  car  | 20
1  |  bus  | 20

我的目标/输出数据帧

代码语言:javascript
复制
id | my_sum_along_with_names
-------------------------------------------------------------
1  | Map(key -> 50, value -> [foo, car, bus])
2  | Map(key -> 15, value -> [bar])

我正在寻找一个联非新议程解决方案,以便我可以使用它在我的原始sql查询。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-10 13:58:16

对于您所拥有的需求,不需要UDAF。它只需使用groupByaggsumcollect_list内置函数,最后使用map内置函数即可实现。

代码语言:javascript
复制
import org.apache.spark.sql.functions._
df.groupBy("id").agg(sum("amount").as("key"), collect_list("name").as("value"))
  .select(col("id"), map(col("key"), col("value")).as("my_sum_along_with_names"))
  .show(false)

这将导致

代码语言:javascript
复制
+---+-------------------------------------------+
|id |my_sum_along_with_names                    |
+---+-------------------------------------------+
|1  |Map(50.0 -> WrappedArray( foo,  car,  bus))|
|2  |Map(15.0 -> WrappedArray( bar))            |
+---+-------------------------------------------+
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48721303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档