返回顶部
首页 > 资讯 > 精选 >hadoop如何自定义GroupComparator实现求最大值
  • 817
分享到

hadoop如何自定义GroupComparator实现求最大值

2023-06-02 21:06:01 817人浏览 薄情痞子
摘要

小编给大家分享一下hadoop如何自定义GroupComparator实现求最大值,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!import java.

小编给大家分享一下hadoop如何自定义GroupComparator实现求最大值,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

import java.io.Datainput;import java.io.DataOutput;import java.io.IOException;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.LongWritable;import org.apache.hadoop.io.NullWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.io.WritableComparable;import org.apache.hadoop.io.WritableComparator;import org.apache.hadoop.mapReduce.Job;import org.apache.hadoop.mapreduce.Mapper;import org.apache.hadoop.mapreduce.Reducer;import org.apache.hadoop.mapreduce.lib.input.FileInputFORMat;import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;public class GroupComparatorMian {static final Log LOG = LogFactory.getLog(GroupComparatorMian.class);public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {Configuration conf = new Configuration();Job job = Job.getInstance(conf);job.setjarByClass(GroupComparatorMian.class);job.setMapperClass(GroupComparatorMapper.class);job.setReducerClass(GroupComparatorReducer.class);job.setOutpuTKEyClass(OrderBean.class);job.setOutputValueClass(NullWritable.class);job.setGroupinGComparatorClass(CustGroupComparator.class);String jobName = "'Customize groupcomparator test'";job.setJobName(jobName);FileInputFormat.addInputPath(job, new Path(args[0]));FileOutputFormat.setOutputPath(job, new Path(args[1]));boolean bb = job.waitForCompletion(true);if(bb) {LOG.info("Job "+ jobName +" is done.");}else {LOG.info("Job "+ jobName +"is Going wrong,now exit.");System.exit(0);}}}class CustGroupComparator extends WritableComparator{public CustGroupComparator() {super(OrderBean.class,true);}@Overridepublic int compare(WritableComparable a, WritableComparable b) {OrderBean oa = (OrderBean)a;OrderBean ob = (OrderBean)b;return oa.getOrder_id().compareTo(ob.getOrder_id());}}class OrderBean implements WritableComparable<OrderBean>{private String order_id;private String id ;private double prise;public OrderBean() {}public OrderBean(String order_id,String id,double prise) {this.order_id = order_id ;this.id = id;this.prise = prise;}public String getOrder_id() {return order_id;}public void setOrder_id(String order_id) {this.order_id = order_id;}public String getId() {return id;}public void setId(String id) {this.id = id;}public double getPrise() {return prise;}public void setPrise(double prise) {this.prise = prise;}@Overridepublic void write(DataOutput out) throws IOException {out.writeUTF(order_id);out.writeUTF(id);out.writeDouble(prise);}@Overridepublic void readFields(DataInput in) throws IOException {this.order_id = in.readUTF();this.id = in.readUTF();this.prise = in.readDouble();}@Overridepublic int compareTo(OrderBean o) {int cnt = this.order_id.compareTo(o.getOrder_id());if(cnt==0) {cnt = (int) (-(this.prise- o.getPrise()));}return cnt;}@Overridepublic String toString() {return  order_id + "\t" + id + "\t" + prise ;}}class GroupComparatorMapper extends Mapper<LongWritable, Text, OrderBean, NullWritable>{NullWritable nul =  NullWritable.get();OrderBean ob = new OrderBean();@Overrideprotected void map(LongWritable key, Text value,Mapper<LongWritable, Text, OrderBean, NullWritable>.Context context)throws IOException, InterruptedException {String[] split =  value.toString().split("\t");ob.setOrder_id(split[0]);ob.setId(split[1]);ob.setPrise(Double.parseDouble(split[2]));context.write(ob, nul);}}class GroupComparatorReducer extends Reducer<OrderBean, NullWritable, OrderBean, NullWritable>{NullWritable nul = NullWritable.get();@Overrideprotected void reduce(OrderBean bean, Iterable<NullWritable> iter,Reducer<OrderBean, NullWritable, OrderBean, NullWritable>.Context context)throws IOException, InterruptedException {context.write(bean, nul);}}

以上是“hadoop如何自定义GroupComparator实现求最大值”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: hadoop如何自定义GroupComparator实现求最大值

本文链接: https://lsjlt.com/news/231384.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • hadoop如何自定义GroupComparator实现求最大值
    小编给大家分享一下hadoop如何自定义GroupComparator实现求最大值,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!import java....
    99+
    2023-06-02
  • JavaScript如何求最大值
    这篇文章给大家分享的是有关JavaScript如何求最大值的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。最大值Math.max(...[1,2,3,4]) //4 Ma...
    99+
    2024-04-02
  • hadoop如何自定义分区
    今天小编给大家分享一下hadoop如何自定义分区的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。分区概念分区这个词对很多同学来...
    99+
    2023-06-29
  • 如何用php语言定义一个数组并求出最大值
    这篇文章主要讲解了“如何用php语言定义一个数组并求出最大值”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用php语言定义一个数组并求出最大值”吧!方法:1、用array()定义数组并初...
    99+
    2023-06-30
  • 怎么用awk命令实现求和、求平均值、求最大值、求最小值
    本篇内容介绍了“怎么用awk命令实现求和、求平均值、求最大值、求最小值”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、求和代码如下:cat...
    99+
    2023-06-13
  • numpy最值、求和如何实现
    这篇文章主要介绍“numpy最值、求和如何实现”,在日常操作中,相信很多人在numpy最值、求和如何实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”numpy最值、求和如何实现”的疑惑有所帮助!接下来,请跟...
    99+
    2023-07-05
  • javascript如何求数组最大值
    这篇文章主要介绍javascript如何求数组最大值,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! javascript求数组最大值的方法:1、声明一个保...
    99+
    2024-04-02
  • es6如何求数组最大值
    这篇文章主要介绍了es6如何求数组最大值的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇es6如何求数组最大值文章都会有所收获,下面我们一起来看看吧。求数组最大值的方法:1、Math.max()配合apply()...
    99+
    2023-07-04
  • Android如何实现自定义Dialog的大小
    小编给大家分享一下Android如何实现自定义Dialog的大小,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体如下:Android应用开发中,无论是出于功能还...
    99+
    2023-05-30
    android dialog
  • hadoop中mapreducez如何自定义分区
    这篇文章主要为大家展示了“hadoop中mapreducez如何自定义分区”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“hadoop中mapreducez如何自定义分区”这篇文章吧。packag...
    99+
    2023-06-02
  • 如何求js数组的最大值和最小值
    这篇文章将为大家详细讲解有关如何求js数组的最大值和最小值,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。给定数组[54,65,43,21,12,34,45,58,97,2...
    99+
    2024-04-02
  • python如何求列表的最大值和最小值
    可以使用内置的`max()`和`min()`函数来求列表的最大值和最小值。示例如下:```pythonnumbers = [1, 2...
    99+
    2023-09-13
    python
  • 如何求php数组的最大值和最小值
    这篇文章主要介绍“如何求php数组的最大值和最小值”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何求php数组的最大值和最小值”文章能帮助大家解决问题。两种方法:1、用“max(数组)”语句获取最...
    99+
    2023-06-30
  • 如何实现自定义最小化安装ubuntu8.04
    这篇文章将为大家详细讲解有关如何实现自定义最小化安装ubuntu8.04,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。#该脚本目录下必须同时存在:#sources.list.hardy#backup.ta...
    99+
    2023-06-17
  • php如何求数组最大值和最小值的差值
    本文小编为大家详细介绍“php如何求数组最大值和最小值的差值”,内容详细,步骤清晰,细节处理妥当,希望这篇“php如何求数组最大值和最小值的差值”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。求差值的步骤:1、使用...
    99+
    2023-07-02
  • Java8中Stream流求最大值最小值的实现示例
    目录一、BigDecimal 求最大值和最小值二、Integer 求最大值和最小值三、Long 求最大值和最小值四、Double 求最大值和最小值一、BigDecimal 求最大值和...
    99+
    2023-05-17
    Java8 最大值 Java8 最小值
  • hadoop如何自定义格式化输出
    这篇文章给大家分享的是有关hadoop如何自定义格式化输出的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。import java.io.IOException;import java.net.U...
    99+
    2023-06-02
  • javascript如何实现数组最大值和最小值
    小编给大家分享一下javascript如何实现数组最大值和最小值,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!给定一个数组[1,8,5,4,3,9,2],编写一个...
    99+
    2023-06-15
  • Java如何使用Arrays.stream()求最大值
    这篇文章给大家分享的是有关Java如何使用Arrays.stream()求最大值的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。根据 Arrays.stream() 实现strea...
    99+
    2024-04-02
  • Java如何使用Arrays.sort()求最大值
    这篇文章将为大家详细讲解有关Java如何使用Arrays.sort()求最大值,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。依赖 Arrays.sort() 实现根据 A...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作