package com.wyu.hadoopapi.car.texi;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
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;
import java.util.*;
/**
* Created by newuser on 2018/7/14.
*/
public class SecondTexiNetWork {
public static class SecondTexiNetWorkMapper extends Mapper<LongWritable,Text,Text,Text> {
@Override
protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
String lines = value.toString();
String[] datas = lines.split("\\t");
String texiId = datas[0];
String time = datas[1];
String speed = datas[2];
String passageState = datas[3];
context.write(new Text(time),new Text(String.format("%s\t%s\t%s",texiId,speed,passageState)));
}
}
public static class SecondTexiNetWorkReducer extends Reducer<Text,Text,Text,Text> {
@Override
protected void reduce(Text key, Iterable<Text> values, Context context) throws IOException, InterruptedException {
int s1 = 0;
int s2 = 0;
HashMap<String, Integer> map = new HashMap<String,Integer>();
for (Text value:values){
String[] words = value.toString().split("\\t");
String texiId = words[0];
int speed = Integer.parseInt(words[1]);
int passageState = Integer.parseInt(words[2]);
if(passageState == 1) {
s1 += speed;
s2++;
}else s1+=0;
Integer integer = map.get(texiId);
if (integer == null){
map.put(texiId,passageState);
}else{
map.put(texiId, integer == 1 ? 1 : passageState);
}
}
int carNums=map.size();
int passageNum=0;
Set<Map.Entry<String,Integer>> entries = map.entrySet();
for (Iterator<Map.Entry<String, Integer>> iterator = entries.iterator();iterator.hasNext();){
Map.Entry<String, Integer> next = iterator.next();
Integer value = next.getValue();
if(value == 1){
passageNum++;
}
}
context.write(key, new Text(String.format("%d\t%d\t%f\t%f", carNums, passageNum, (passageNum / (carNums * 1.0)),(s1/(s2*1.0)))));
}
}
public static void main(String[] args)throws Exception {
Configuration config = new Configuration();
Job job = Job.getInstance(config);
job.setJarByClass(SecondTexiNetWork.class);
job.setMapperClass(SecondTexiNetWorkMapper.class);
job.setReducerClass(SecondTexiNetWorkReducer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(Text.class);
FileInputFormat.setInputPaths(job, new Path("c:\\handle_spg_out\\part-r-00000"));
Path path = new Path("c:\\handle_sgp_out");
FileSystem fs = FileSystem.get(config);
if(fs.exists(path)){
fs.delete(path,true);
}
FileOutputFormat.setOutputPath(job, path);
System.exit(job.waitForCompletion(true)?0:1);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
基于Hadoop的小型数据分析项目的设计与实现.zip (147个子文件)
SecondTexiNetWork$SecondTexiNetWorkReducer.class 4KB
SecondCarNetWork$SecondCarNetWorkReducer.class 4KB
TexiNetWork$TexiNetWorkReducer.class 3KB
APP$PhoneFlowReducer.class 2KB
TexiNetWork$TexiNetWorkMapper.class 2KB
SecondTexiNetWork$SecondTexiNetWorkMapper.class 2KB
CarNetWork$CarNetWorkReducer.class 2KB
SecondCarNetWork$SecondCarNetWorkMapper.class 2KB
CarNetWork$CarNetWorkMapper.class 2KB
APP$PhoneFlowMapper.class 2KB
Person.class 2KB
WordCount$WordCountReducer.class 2KB
Texi.class 2KB
TexiNetWork.class 2KB
WordCount$WordCountMapper.class 2KB
CarNetWork.class 2KB
SecondTexiNetWork.class 2KB
APP.class 2KB
SecondCarNetWork.class 2KB
WordCount.class 2KB
Car.class 2KB
Person$HandleReducerThread.class 2KB
Person$HandleMapThread.class 2KB
Phone.class 2KB
TimeUtils.class 604B
TimeUtils.class 594B
hadoopapi.iml 7KB
demo.iml 423B
com.iml 336B
IdeaProjects.iml 336B
SecondTexiNetWork.java 4KB
Person.java 3KB
SecondCarNetWork.java 3KB
APP.java 3KB
WordCount.java 2KB
TexiNetWork.java 2KB
CarNetWork.java 2KB
Texi.java 2KB
Car.java 1KB
Phone.java 1KB
TimeUtils.java 336B
TimeUtils.java 331B
Test.java 89B
JDBC.md 34KB
Mybatis.md 10KB
SpringBoot.md 9KB
Druid.md 6KB
.name 12B
.name 9B
.name 4B
.name 3B
log4j.properties 607B
log4j.properties 607B
workspace.xml 72KB
workspace.xml 31KB
workspace.xml 29KB
workspace.xml 28KB
uiDesigner.xml 9KB
misc.xml 3KB
compiler.xml 1KB
misc.xml 1KB
pom.xml 801B
misc.xml 724B
misc.xml 724B
Maven__org_apache_hadoop_hadoop_mapreduce_client_jobclient_2_6_1.xml 694B
Maven__org_apache_directory_server_apacheds_kerberos_codec_2_0_0_M15.xml 692B
compiler.xml 686B
compiler.xml 686B
compiler.xml 686B
Maven__org_apache_hadoop_hadoop_mapreduce_client_shuffle_2_6_1.xml 680B
Maven__org_apache_hadoop_hadoop_mapreduce_client_common_2_6_1.xml 673B
Maven__org_apache_hadoop_hadoop_mapreduce_client_core_2_6_1.xml 659B
Maven__org_apache_hadoop_hadoop_mapreduce_client_app_2_6_1.xml 652B
Maven__org_apache_hadoop_hadoop_yarn_server_common_2_6_1.xml 638B
Maven__org_apache_directory_server_apacheds_i18n_2_0_0_M15.xml 622B
Maven__commons_beanutils_commons_beanutils_core_1_8_0.xml 617B
Maven__commons_configuration_commons_configuration_1_6.xml 612B
Maven__org_codehaus_jackson_jackson_mapper_asl_1_9_13.xml 608B
Maven__commons_collections_commons_collections_3_2_1.xml 604B
Maven__org_apache_directory_api_api_asn1_api_1_0_0_M20.xml 603B
Maven__org_codehaus_jackson_jackson_core_asl_1_9_13.xml 594B
Maven__org_apache_hadoop_hadoop_annotations_2_6_1.xml 589B
Maven__org_apache_hadoop_hadoop_yarn_client_2_6_1.xml 589B
Maven__org_apache_hadoop_hadoop_yarn_common_2_6_1.xml 589B
Maven__org_apache_curator_curator_framework_2_6_0.xml 586B
Maven__commons_beanutils_commons_beanutils_1_7_0.xml 582B
Maven__org_fusesource_leveldbjni_leveldbjni_all_1_8.xml 579B
Maven__org_apache_commons_commons_compress_1_4_1.xml 579B
Maven__commons_httpclient_commons_httpclient_3_1.xml 579B
Maven__org_apache_directory_api_api_util_1_0_0_M20.xml 575B
Maven__org_codehaus_jackson_jackson_jaxrs_1_9_13.xml 573B
Maven__org_apache_curator_curator_recipes_2_6_0.xml 572B
Maven__org_apache_hadoop_hadoop_yarn_api_2_6_1.xml 568B
Maven__org_apache_curator_curator_client_2_6_0.xml 565B
Maven__org_apache_httpcomponents_httpclient_4_2_5.xml 565B
Maven__com_google_protobuf_protobuf_java_2_5_0.xml 562B
Maven__commons_logging_commons_logging_1_1_3.xml 560B
Maven__org_apache_commons_commons_math3_3_1_1.xml 558B
Maven__commons_digester_commons_digester_1_8.xml 557B
Maven__org_apache_hadoop_hadoop_common_2_6_1.xml 554B
共 147 条
- 1
- 2
资源评论
博士僧小星
- 粉丝: 1894
- 资源: 5877
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功