spark 例子groupByKey分组计算
spark 例子groupByKey分组计算
例子描述:
【分组、计算】
主要为两部分,将同类的数据分组归纳到一起,并将分组后的数据进行简单数学计算。
难点在于怎么去理解groupBy和groupByKey
原始数据
2010-05-04 12:50,10,10,10
2010-05-05 13:50,20,20,20
2010-05-06 14:50,30,30,30
2010-05-05 13:50,20,20,20
2010-05-06 14:50,30,30,30
2010-05-04 12:50,10,10,10
2010-05-04 11:50,10,10,10
结果数据
2010-05-05 13:50,40,40,40
2010-05-04 12:50,20,20,20
2010-05-06 14:50,60,60,60
2010-05-04 11:50,10,10,10
代码片段:
/* 同类合并、计算 */
val source = Source.fromFile("E:test.txt").getLines.toArray
val sourceRDD = sc.parallelize(source)                                  /* spark单机读取数据 */
sourceRDD
  .map {
    line =>
      val lines = line.split(",")                                         /* 拆分数据 */
      (s"${lines(0)}", s"${lines(1)},${lines(2)},${lines(3)}")            /* 找出同样的数据为K,需要进行计算的为V,拼成map */
  }
  .groupByKey
  .map {                                                      /* 分组,最重要的就是这,同类的数据分组到一起,后面只需要计算V了 */
    case (k, v) =>
      var a, b, c = 0                                                     /* 定义几个存数据的变量,恩,这很java,一般scala中很少见到var */
      v.foreach {                                                         /* 遍历需要计算的V  */
        x =>
          val r = x.split(",")                                            /* 将V拆分 */
          a += r(0).toInt                                                 /* 计算 */
          b += r(1).toInt
          c += r(2).toInt
      }
    s"$k,$a,$b,$c"                                                      /* 拼字符串,返回数据 */
  }
  .foreach(println)
												
											spark 例子groupByKey分组计算的更多相关文章
- spark 例子groupByKey分组计算2
		
spark 例子groupByKey分组计算2 例子描述: 大概意思为,统计用户使用app的次数排名 原始数据: 000041b232,张三,FC:1A:11:5C:58:34,F8:E7:1E:1E ...
 - [Spark][Python]groupByKey例子
		
Spark Python 索引页 [Spark][Python]sortByKey 例子 的继续: [Spark][Python]groupByKey例子 In [29]: mydata003.col ...
 - Spark 两种方法计算分组取Top N
		
Spark 分组取Top N运算 大数据处理中,对数据分组后,取TopN是非常常见的运算. 下面我们以一个例子来展示spark如何进行分组取Top的运算. 1.RDD方法分组取TopN from py ...
 - spark 例子wordcount topk
		
spark 例子wordcount topk 例子描述: [单词计算wordcount ] [词频排序topk] 单词计算在代码方便很简单,基本大体就三个步骤 拆分字符串 以需要进行记数的单位为K,自 ...
 - Spark源码剖析 - 计算引擎
		
本章导读 RDD作为Spark对各种数据计算模型的统一抽象,被用于迭代计算过程以及任务输出结果的缓存读写.在所有MapReduce框架中,shuffle是连接map任务和reduce任务的桥梁.map ...
 - spark 例子倒排索引
		
spark 例子倒排索引 例子描述: [倒排索引(InvertedIndex)] 这个例子是在一本讲spark书中看到的,但是样例代码写的太java化,没有函数式编程风格,于是问了些高手,教我写了份函 ...
 - spark 例子count(distinct 字段)
		
spark 例子count(distinct 字段) 例子描述: 有个网站访问日志,有4个字段:(用户id,用户名,访问次数,访问网站) 需要统计: 1.用户的访问总次数去重 2.用户一共访问了多少种 ...
 - demo2 Kafka+Spark Streaming+Redis实时计算整合实践 foreachRDD输出到redis
		
基于Spark通用计算平台,可以很好地扩展各种计算类型的应用,尤其是Spark提供了内建的计算库支持,像Spark Streaming.Spark SQL.MLlib.GraphX,这些内建库都提供了 ...
 - devexpress表格gridcontrol实现分组,并根据分组计算总计及平均值
		
1.devexpress表格控件gridcontrol提供了强大的分组功能,你几乎不用写什么代码就可以实现一个分组功能,并且可根据分组计算总计和平均值.这里我例举了一个实现根据班级分组计算班级总人数, ...
 
随机推荐
- 在 Windows Server Container 中运行 Azure Storage Emulator(二):使用自定义的 SQL Server Instance
			
上一节,我们解决了 Azure Storage Emulator 自定义监听地址的问题,这远远不够,因为在我们 DEV/QA 环境有各自的 SQL Server Instance,我们需要将 ASE ...
 - 性状、生成器、闭包、OPcache【Modern PHP】
			
目录 性状 Trait 生成器 闭包 Zend OPcache PHP发展这么多年,技术.架构都已经革新,了解现代PHP很重要,最近在看Model PHP这本书,系统的了解下PHP相关的概念. 性状 ...
 - xsd文件记录
			
<MESSAGE Version="1.0"> <CV_HEADER MsgType=" /> <QUERY_PROFILE> < ...
 - php给图片加文字
			
在图片上加文字是论坛,博客,新闻网站上最喜欢用的功能,防止盗图.这里看看代码是如何实现的. 首先还是upload_image.php这个文件,注意这里的caption文本框中输入的内容最终会写到图片上 ...
 - [EffectiveC++]item24:若所有参数皆需类型转换,请为此采用non-member函数
			
Declare non-member functions when type conversions should apply to all parameters. 104页 只有当参数被列于参数列( ...
 - Spring Security 静态资源访问
			
在搞 Spring Security 的时候遇到了一个小坑,就是静态资源加载的问题. 当我们继承了 WebSecurityConfigurerAdapter的时候,会去重写几个方法.去设定我们自己要过 ...
 - scala当中的继承
			
1.Scala中继承(extends)的概念 Scala 中,让子类继承父类,与 Java 一样,也是使用 extends 关键字: 继承就代表,子类可继承父类的 field 和 method ,然后 ...
 - HTTP之Response状态码
			
Status-Code - 1xx: Informational - Request received, continuing process - 2xx: Success - The action ...
 - CF 553E Kyoya and Train
			
题目分析 期望\(\text{dp}\). 设\(f_{i,j}\)表示在第\(j\)个时刻从\(i\)点出发,到达终点的期望花费. 有转移方程: \[ f_{x,t}=\min_{(x,y)\in ...
 - 远程执行newLISP代码
			
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/sheismylife/article/details/26393899 newLISP提供了一个简单 ...