首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在星火中,我如何创建元组从行(Col1,Col2,Col3,(Col4+Col5+Col6))

在星火中,我如何创建元组从行(Col1,Col2,Col3,(Col4+Col5+Col6))
EN

Stack Overflow用户
提问于 2016-11-19 02:48:40
回答 2查看 5.9K关注 0票数 2

在星火中,如何从行创建元组作为

(Col1 , Col2,Col3 ,(Col4+Col5+Col6))

我有400+动态生成的列名。我不想在DB进行这种聚合,所以选择col1、col2、col3 (col4+col5+col6)不是解决方案。我用卡桑德拉做数据存储

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-20 07:56:37

总的来说,我认为你的想法是正确的,所以我在这里的建议是语法糖:

代码语言:javascript
运行
复制
df
 .map{row => (row(0), row(1), row(2), (3 until row.length).map(row.getLong(_)).sum)}
票数 5
EN

Stack Overflow用户

发布于 2016-11-19 06:05:16

用下面的代码解决了这个问题。然而,我仍在寻找较短的答案,可能是用合成糖..。

代码语言:javascript
运行
复制
 df.map(x => {
        var sum :Long = 0
      for (i <- 3 until  x.length)
      sum = sum + x(i).asInstanceOf[Long]
        (x(0) ,x(1) ,x(2) ,sum)
      }).collect()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40688709

复制
相关文章

相似问题

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