首页 > 其他分享 >mapreduce案例_电信用户平均停留时间

mapreduce案例_电信用户平均停留时间

时间:2024-11-07 21:42:09浏览次数:4  
标签:停留时间 mapreduce hadoop job apache import 电信 class

package com.wll.dianxin;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
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;

import java.io.IOException;

class TimeMapper extends Mapper<LongWritable, Text,Text,LongWritable>{
    @Override
    protected void map(LongWritable key, Text value, Mapper<LongWritable, Text, Text, LongWritable>.Context context) throws IOException, InterruptedException {
        String line = value.toString();
        if (line.endsWith("03")){
            String[] split = line.split("\t");
            context.write(new Text(split[0]+"-"+split[2]),new LongWritable(Integer.parseInt(split[4])));
        }
    }
}

class TimeReducer extends Reducer<Text,LongWritable,Text,LongWritable>{
    @Override
    protected void reduce(Text key, Iterable<LongWritable> values, Reducer<Text, LongWritable, Text, LongWritable>.Context context) throws IOException, InterruptedException {
        long sum=0L;
        long count=0L;
        for (LongWritable value : values) {
            sum+=value.get();
            count++;
        }
        context.write(key,new LongWritable(sum/count));

    }
}

public class TimeDemo{
    public static void main(String[] args) throws Exception{
        Configuration conf = new Configuration();
        conf.set("fs.defaultFS", "hdfs://master:9000");

        Job job = Job.getInstance(conf);

        job.setJarByClass(TimeDemo.class);

        job.setJobName("用户平均停留时长统计案例");

        job.setMapperClass(TimeMapper.class);

        job.setReducerClass(TimeReducer.class);

        job.setMapOutputKeyClass(Text.class);

        job.setMapOutputValueClass(LongWritable.class);

        job.setOutputKeyClass(Text.class);

        job.setOutputValueClass(LongWritable.class);

        FileInputFormat.setInputPaths(job,new Path(args[0]));

        FileOutputFormat.setOutputPath(job,new Path(args[1]));

        boolean b = job.waitForCompletion(true);
        if (b){
            System.out.println("用户平均停留时长案例mapreduce实现执行成功!>_-");
        }else {
            System.out.println("用户平均停留时长案例mapreduce实现执行失败");
        }


    }
}

结果

标签:停留时间,mapreduce,hadoop,job,apache,import,电信,class
From: https://www.cnblogs.com/w-ll/p/18534065

相关文章

  • mapreduce案例_用户停留时间关联城市名
    importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.Path;importorg.apache.hadoop.io.LongWritable;importorg.apache.hadoop.io.Text;importorg.apache.hadoop.mapreduce.lib.input.FileSplit;importorg.apache.hadoop.mapreduce.Job;impo......
  • mapreduce流程
    逻辑切片1、逻辑切片对block块进行切分,切分的结果将影响map任务的数量2、split切片的大小默认是128M,与block块大小一样,一个block块会有一个切片3、如果读取到最后一个block块时会与前一个block进行合并,合并后的大小如果大于1281.1将会各自生成一个切片,合并后的大小如果小于......
  • mapreduce案例_词频统计
    统计文件中英文单词出现的次数importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.Path;importorg.apache.hadoop.io.LongWritable;importorg.apache.hadoop.io.Text;importorg.apache.hadoop.mapreduce.Job;importorg.apache.hadoop.mapreduce.......
  • MapReduce理解
    解释下面是转载的一篇程序员给妻子讲解什么是MapReduce的对话,看完能大概明白我问妻子:“你真的想要弄懂什么是MapReduce?”她很坚定的回答说“是的”。因此我问道:我:你是如何准备洋葱辣椒酱的?(以下并非准确食谱,请勿在家尝试)妻子:我会取一个洋葱,把它切碎,然后拌入盐和水,最后放进混......
  • Hadoop-MapReduce任务三种运行开发模式
    1、local模式数据在本地,代码也在本地,使用本机的电脑的资源运行我们的MR输入和输出路径指的都是本地路径,运行时耗费的资源也是本地资源。2、local模式2数据在hdfs上,代码在本地,使用本机的电脑的资源运行我们的MRSystem.setProperty("HADOOP_USER_NAME","root");......
  • 国际电信联盟标准音标字母表
    TheInternationalTelecommunicationsUnionStandardPhoneticAlphabet字母名称字母名称字母名称AAlphaJJulietSSierraBBravoKKiloTTangoCCharlieLLimaUUniformDDeltaMMikeVVictorEEchoNNovemberWWhiskeyFFoxtrotOOs......
  • 中电金信:守护金融安全·内控合规与反电信诈骗
    ​在金融科技迅猛发展的今天,金融机构在享受数字化带来的便捷的同时,也面临着日益严峻的内控合规挑战和电信诈骗威胁。监管政策的日益严格和电信诈骗手段的不断翻新,对金融机构的风控能力提出了更高的要求。  2023年以来,国家金融监督管理总局、央行和外汇管理局共开出罚单3324......
  • 25届电信保研经验贴(自动化所)
     个人背景学校:中九专业:电子信息工程加权:92.89绩点:3.91/4.0rank:前五学期rank2/95,综合排名rank1(前六学期和综合排名出的晚,实际上只用到了前五学期)科研竞赛:市级大创、数模省一、数竞省二,其他校奖若干英语:六级462、四级548个人感觉:rank=科研>竞赛>英语至于面试,大家一定要......
  • 6.824的MapReduce功能实现
    为了熟悉go语言,顺便了解一下MapReduce,花一个上午将go的调试功能配置好,下午将MIT的6.824课程的MapReduce功能实现了一遍,一次就把全部案例跑通过了,有点出乎意料的好。准备工作配置go的调试功能dlv,刚开始使用默认的modeauto,实际使用的是debug,无论怎样都成功不了。launch.json:......
  • Matlab使用LSTM或BiLSTM对一维信号(语音信号、心电信号等)进行二分类源程序。也可以改
     Matlab使用LSTM或BiLSTM对一维信号(语音信号、心电信号等)进行二分类源程序。也可以改成多分类。包含数据和代码,数据可以直接替换为自己的数据。如果用BiLSTM,程序中只需要把lstmlayer改为bilstmlayer即为BiLSTM网络,其他地方不需要任何改动。工作如下:1、加载数据集,一共为......