当前位置: 首页 > 面试题库 >

Spark Dataframe reducebykey之类的操作

袁桐
2023-03-14
问题内容

我有一个包含以下数据的Spark数据帧(我使用spark-csv加载数据):

key,value
1,10
2,12
3,0
1,20

有什么类似于spark RDD的东西reduceByKey可以返回一个Spark DataFrame如下:(基本上,对相同的键值求和)

key,value
1,30
2,12
3,0

(我可以将数据转换为RDD并进行reduceByKey操作,但是还有更多的Spark DataFrame API方式可以做到这一点吗?)


问题答案:

如果你不关心列名,你可以使用groupBy后跟sum

df.groupBy($"key").sum("value")

否则最好替换sumagg

df.groupBy($"key").agg(sum($"value").alias("value"))

最后,您可以使用原始SQL:

df.registerTempTable("df")
sqlContext.sql("SELECT key, SUM(value) AS value FROM df GROUP BY key")


 类似资料:
  • 导入javax.swing.*; class Labels extensions JFrame{ JPanel pnl = new JPanel(); } 如果我想将其用作JApplet怎么办?必须做什么?很难更改吗? JFrame上运行的东西和JApplet上的东西是一样的吗?

  • 本文向大家介绍C#之Socket操作类实例解析,包括了C#之Socket操作类实例解析的使用技巧和注意事项,需要的朋友参考一下 本文展示了一个C#的Socket操作类的完整实例,并附带了用法说明,分享给大家供大家参考之用。具体方法如下: 主要功能代码如下: 用法说明: 每个接收的方法都对应着有发送方法 如: 发送方法: 接收方法: 不知道发送文本长度: 发送方法: 接收方法: 希望本文所述实例对大

  • 本文向大家介绍PHP常用操作类之通信数据封装类的实现,包括了PHP常用操作类之通信数据封装类的实现的使用技巧和注意事项,需要的朋友参考一下 前言 本文主要给大家介绍了关于PHP常用操作类之通信数据封装类实现的相关内容,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍: 必要性 不管在B/S架构中,还是C/S架构中,两端的数据通信(注:这里的通信是指的网络请求和回复操作)都无可避免,因为没

  • 本文向大家介绍Android开发之Adobe flash操作工具类,包括了Android开发之Adobe flash操作工具类的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android开发之Adobe flash操作工具类。分享给大家供大家参考,具体如下: 更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android多媒体操作技巧汇总

  • 本文向大家介绍mfc文件操作CFile类之创建文件的方法,包括了mfc文件操作CFile类之创建文件的方法的使用技巧和注意事项,需要的朋友参考一下 mfc文件操作类CFile CFile类的几种构造函数 除了用构造函数打开文件外还可以用CFile类的成员函数Open来打开 OPen函数原型 CFile构造函数和CFile成员函数Open的参数nOpenFlage 可以是以下任意组合(使用位或|组合

  • 主要内容:1.基本类型原子类,2.数组类型原子类,3.引用类型原子类,4.对象的属性修改原子类,6.原子操作增强类原理深度解析,7.LongAdder为什么快,8.总结18罗汉: 1.AtomicBoolean 2.AtomicInteger 3.AtomicIntegerArray 4.AtomicIntegerFieldUpdater 5.AtomicLong 6.AtomicLongArray 7.AtomicLongFieldUpdater 8.AtomicMarkableReferen