spark foldByKey

package com.latrobe.spark

import org.apache.spark.{SparkContext, SparkConf}

/**
 * Created by spark on 15-1-18.
 */
object FoldByKey {
  def main(args: Array[String]) {
    val conf = new SparkConf().setAppName("spark-demo").setMaster("local")
    val sc = new SparkContext(conf)

    import org.apache.spark.SparkContext._
    val a = sc.parallelize(List("dog", "cat", "owl", "gnu", "ant") , 2)
    val b = a.map(x => (x.length , x))

    val c = b.foldByKey("")(_ + _)

    //打印结果:(3,dogcatowlgnuant)
    c.collect().foreach(print)

    val aa = sc.parallelize(List("dog", "tiger", "lion", "cat", "panther", "eagle"), 2)
    val bb = aa.map(x => (x.length , x))
    val cc = bb.foldByKey("")( _ + _)

    //打印结果:(4,lion)(3,dogcat)(7,panther)(5,tigereagle)
    cc.collect().foreach(print)
  }
}
时间: 2024-10-19 06:07:01

spark foldByKey的相关文章

PairRDD中算子foldByKey图解

foldByKey 函数原型: def foldByKey(zeroValue: V)(func: (V, V) => V): RDD[(K, V)] def foldByKey(zeroValue: V, numPartitions: Int)(func: (V, V) => V): RDD[(K, V)] def foldByKey(zeroValue: V, partitioner: Partitioner)(func: (V, V) => V): RDD[(K, V)] 作用:将

spark总结——转载

转载自:http://smallx.me/2016/06/07/spark%E4%BD%BF%E7%94%A8%E6%80%BB%E7%BB%93/ 第一个Spark程序 /** * 功能:用spark实现的单词计数程序 * 环境:spark 1.6.1, scala 2.10.4 */ // 导入相关类库import org.apache.spark._ object WordCount { def main(args: Array[String]) { // 建立spark运行上下文 val

Spark常用函数讲解--键值RDD转换

摘要: RDD:弹性分布式数据集,是一种特殊集合 ‚ 支持多种来源 ‚ 有容错机制 ‚ 可以被缓存 ‚ 支持并行操作,一个RDD代表一个分区里的数据集RDD有两种操作算子:         Transformation(转换):Transformation属于延迟计算,当一个RDD转换成另一个RDD时并没有立即进行转换,仅仅是记住       了数据集的逻辑操作         Ation(执行):触发Spark作业的运行,真正触发转换算子的计算 本系列主要讲解Spark中常用的函数操作:   

Spark-->combineByKey【请阅读Apache spark官网文档】

这篇文章,很有必要看,写的不错.但是看过后,不要忘记查看Apache spark官网.因为这篇文章理解还是和源码.官网文档 不一致.有一点错误![cnblogs的代码编辑器 不支持Scala,所以 语言的关键字 没有高亮显示] 在数据分析中,处理Key,Value的Pair数据是极为常见的场景,例如我们可以针对这样的数据进行分组.聚合或者将两个包含Pair数据的RDD根据key进行join.从函数的抽象层面看,这些操作具有共同的特征,都是将类型为RDD[(K,V)]的数据处理为RDD[(K,C)

Spark中的键值对操作-scala

1.PairRDD介绍     Spark为包含键值对类型的RDD提供了一些专有的操作.这些RDD被称为PairRDD.PairRDD提供了并行操作各个键或跨节点重新进行数据分组的操作接口.例如,PairRDD提供了reduceByKey()方法,可以分别规约每个键对应的数据,还有join()方法,可以把两个RDD中键相同的元素组合在一起,合并为一个RDD. 2.创建Pair RDD 程序示例:对一个英语单词组成的文本行,提取其中的第一个单词作为key,将整个句子作为value,建立 PairR

(九)groupByKey,reduceByKey,sortByKey算子-Java&Python版Spark

groupByKey,reduceByKey,sortByKey算子 视频教程: 1.优酷 2. YouTube 1.groupByKey groupByKey是对每个key进行合并操作,但只生成一个sequence,groupByKey本身不能自定义操作函数. java: 1 package com.bean.spark.trans; 2 3 import java.util.Arrays; 4 import java.util.List; 5 6 import org.apache.spar

spark中groupByKey与reducByKey

[译]避免使用GroupByKey Scala Spark 技术 by:leotse 原文:Avoid GroupByKey 译文 让我们来看两个wordcount的例子,一个使用了reduceByKey,而另一个使用groupByKey: 1234567891011 val words = Array("one", "two", "two", "three", "three", "three&q

Spark笔记——技术点汇总

目录 · 概况 · 手工搭建集群 · 引言 · 安装Scala · 配置文件 · 启动与测试 · 应用部署 · 部署架构 · 应用程序部署 · 核心原理 · RDD概念 · RDD核心组成 · RDD依赖关系 · DAG图 · RDD故障恢复机制 · Standalone模式的Spark架构 · YARN模式的Spark架构 · 应用程序资源构建 · API · WordCount示例 · RDD构建 · RDD缓存与持久化 · RDD分区数 · 共享变量 · RDD Operation · R

Spark Programming--Transformations

map 将RDD中的每个数据项,一对一的映射关系,RDD数目不变,分区数也不变 例子: 数据集: map操作: flatMap 和map一样,但是会拆分每一个map之后的list,可以理解为一对多(注:会把字符串当作数组然后拆分) 例子: distinct 对RDD的数据项进行去重操作 例子: coalesce def coalesce(numPartitions: Int, shuffle: Boolean = false)(implicit ord: Ordering[T] = null):