Scala实现Mapreduce程序3----数据排序

输入n个数字,输出每一个数字以及其排名例如:

4

2

3

1

输出:

1  1

2  2

3  3

4  4

scala实现

package HadoopvsSpark.ScalaMap

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

/**  * Created by Administrator on 2017/5/25.  */object Sorted {  def main(args: Array[String]): Unit = {    val conf=new SparkConf().setMaster("")    val sc=new SparkContext(conf)    val one=sc.textFile("")    var index=0;    //由于输入文件有多个,产生不同的分区,为了生产序号,使用HashPartitioner将中间的RDD归约到一起。    val line=one.filter(_.trim.length>0).map(num=>(num.trim.toInt,"")).partitionBy(new HashPartitioner(1)    ).sortByKey().map(t=>{      index+=1      (index,t._1)    }).collect().foreach(x=>println(x._1+"\t"+x._2))  }

}
时间: 2024-12-17 06:15:27

Scala实现Mapreduce程序3----数据排序的相关文章

Scala实现Mapreduce程序2-----Top5

输入n个数,返回TOP5的数字 scala实现,以各个数字为key,""为空,按照key进行排序,取出前5个 object Top5 { def main(args: Array[String]): Unit = { val conf = new SparkConf().setMaster("") val sc = new SparkContext(conf) val one = sc.textFile("/spark/test") var in

Scala实现Mapreduce程序4-----数据去重

数据去重,key只输出一次 scala实现:先groupByKey(),然后SortByKey(),然后输出keys object Reduplicate { def main(args: Array[String]): Unit = { val conf=new SparkConf().setMaster("local").setAppName("remove duplication"); val sc=new SparkContext(conf); val li

编写mapreduce程序实例——数据去重

每一行为一个日期及一个人名字,分为3个文件,其中存在多行重复数据,需要进行去重. 输入文件: file1: 2006-6-9 a 2006-6-11 b 2006-6-21 c 2006-6-10 a 2006-6-11 b 2006-6-30 e 2006-6-9 a 2006-6-26 d file2: 2006-6-9 a 2006-6-11 b 2006-6-9 a 2006-6-21 c 2006-6-11 b 2006-6-9 a 2006-6-30 e file3: 2006-6-

Hadoop之MapReduce程序应用三

摘要:MapReduce程序进行数据去重. 关键词:MapReduce   数据去重 数据源:人工构造日志数据集log-file1.txt和log-file2.txt. log-file1.txt内容 2014-1-1    wangluqing 2014-1-2    root 2014-1-3   root 2014-1-4  wangluqing 2014-1-5  root 2014-1-6  wangluqing log-file2.txt内容 2014-1-1  root 2014-

Hadoop mapreduce 数据去重 数据排序小例子

数据去重: 数据去重,只是让出现的数据仅一次,所以在reduce阶段key作为输入,而对于values-in没有要求,即输入的key直接作为输出的key,并将value置空.具体步骤类似于wordcount: Tip:输入输出路径配置. import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop

MapReduce程序之二次排序与多次排序

[toc] MapReduce程序之二次排序与多次排序 需求 有下面的数据: cookieId time url 2 12:12:34 2_hao123 3 09:10:34 3_baidu 1 15:02:41 1_google 3 22:11:34 3_sougou 1 19:10:34 1_baidu 2 15:02:41 2_google 1 12:12:34 1_hao123 3 23:10:34 3_soso 2 05:02:41 2_google 假如我们现在的需求是先按 cook

已知s.txt文件中有一个这样的字符串 请编写程序读取数据内容,把数据排序后写入 ss.txt文件

package cn.idcast5; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.Arrays; /* * 需求:已知s.txt文件中有一个这样

Hadoop学习---第三篇Hadoop的第一个Mapreduce程序

Mapreducer程序写了好几个了,但是之前一直都没有仔细的测试过本地运行和集群上运行的区别,今天写了一个Mapreduce程序,在此记录下来. 本地运行注意事项有以下几点: 1.本地必须配置好Hadoop的开发环境 2.在src里不加入配置文件运行,或者如果本地的src里有mapred-site.xml和yarn-site.xml配置文件,那么mapreduce.framework.name=local以及yarn.resourcemanager.hostname=local 测试说明:sr

6.命令行编译打包运行五个MapReduce程序

对于如何编译WordCount.java,对于0.20 等旧版本版本的做法很常见,具体如下: javac -classpath /usr/local/hadoop/hadoop-1.0.1/hadoop-core-1.0.1.jar WordCount.java 但较新的 2.X 版本中,已经没有 hadoop-core*.jar 这个文件,因此编辑和打包自己的MapReduce程序与旧版本有所不同. Hadoop 2.x 版本中的依赖 jar Hadoop 2.x 版本中jar不再集中在一个