当前位置: 首页 > 知识库问答 >
问题:

在Spark中,如何从行as (Col1,Col2,Col3,(Col4 Col5 Col6))创建元组

华欣荣
2023-03-14

在Spark中,如何从行创建元组

< code >(列1,列2,列3,(列4列5列6))

我有400个动态生成的列名。我不想在数据库中进行这种聚合,所以select col1,col2,col3,(col4 col5 col6)不是解决方案。我使用cassandra进行数据存储

共有2个答案

陈坚
2023-03-14

使用以下代码解决了它。但是我仍在寻找较短的答案可能是合成糖。

 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()
冷涵忍
2023-03-14

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

df
 .map{row => (row(0), row(1), row(2), (3 until row.length).map(row.getLong(_)).sum)}
 类似资料:
  • 问题内容: 我们正在使用SQL Server2005,但是这个问题可能适用于任何RDBMS。 从视图中选择所有列时,以下哪一项更有效? 或者 问题答案: 永远不要使用“选择*” !!!! 这是查询设计的基本规则! 这有多种原因。其中之一是,如果您的表上只有三个字段,并且您使用了调用查询的代码中的所有三个字段,则很有可能会随着应用程序的增长而向该表中添加更多字段,并且您的select *查询仅用于返

  • 问题内容: 我们正在使用SQL Server 2005,但是这个问题可能适用于任何RDBMS。 从视图中选择所有列时,以下哪一项更有效? 或者 问题答案: 永远不要使用“选择*” !!!! 这是查询设计的基本规则! 这有多种原因。其中之一是,如果您的表上只有三个字段,并且您使用了调用查询的代码中的所有三个字段,则很有可能会随着应用程序的增长而向该表中添加更多字段,并且您的select *查询仅用于

  • 问题内容: 正如我的问题所指出的,我想知道我们在子句中如何称呼具有这种条件的查询类型,即: 换句话说: 给我所有小于‘1’的记录,或者如果它等于‘1’则必须小于‘2’-并且所有值都不为NULL。 我真的很喜欢这种类型的语法,但是不知道有关如何引用这种条件的命名约定。它看起来像是有条件的元组,但是这个名字并没有给我任何东西。 我的问题源于需要了解该语法的名称,以便研究如何使用带有Hibernate和

  • 背景: 我有一个数据帧,它有三列:< code>id,x,y。x,y是双精度的。 首先,我来获取坐标列。 然后 所以现在df只有两列:。 我认为坐标的数据类型是。所以我把它传给了udf。但是,数据类型是错误的。我在运行代码时遇到错误。我不知道为什么。结构(col1,col2)的真实数据类型是什么?或者有另一种方法可以轻松获得正确答案? 这是代码: 非常感谢!

  • 问题内容: 我如何使用python中的哪个函数从spark数据帧创建一组?如果标签/结果不是第一列,但我可以引用其列名“状态”,该怎么办? 我使用此.map()函数创建Python数据框: 在reduce函数重新组合了所有Pandas数据帧之后,我将其转换为Spark数据帧。 但是现在如何在Python中从中创建呢?我认为这可能是另一个功能? 问题答案: 如果您已经具有数字功能并且不需要其他转换,

  • 我想展平元组的RDD(使用无操作映射),但我得到了一个类型错误: 给予 错误:类型不匹配; 找到:(Int,String)必需:TraversableOnce[?] ap.flat地图(x= s或s的等效列表可以正常工作,例如: Scala能处理吗?如果没有,为什么没有?