package com.km.sogou;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
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.input.TextInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;
import org.apache.hadoop.util.GenericOptionsParser;
import java.io.IOException;
import java.util.StringTokenizer;
public class CleanSameData {
public static class Map extends Mapper<Object, Text, Text, Text> {
// 实现map函数
@Override
public void map(Object key, Text value, Context context) throws IOException, InterruptedException {
// 将输入的纯文本文件的数据转化成String
String line = value.toString();
// 将输入的数据首先按行进行分割
StringTokenizer tokenizerArticle = new StringTokenizer(line, "\n");
// 分别对每一行进行处理
int count=0;
while (tokenizerArticle.hasMoreElements()) {
// 每行按空格划分
StringTokenizer tokenizerLine = new StringTokenizer(tokenizerArticle.nextToken());
String c1 = tokenizerLine.nextToken();// time
String c2 = tokenizerLine.nextToken();//用户id
String c3 = tokenizerLine.nextToken(); //查询词
c3 = c3.substring(1, c3.length() - 1);
Text newline = new Text(c1 + " " + c2 + " " +c3);
context.write(newline, new Text(""));
}
}
}
// reduce将输入中的key复制到输出数据的key上,并直接输出
public static class Reduce extends Reducer<Text, Text, Text, Text> {
@Override
// 实现reduce函数
//reduce接受的是mapper产生的键值对集合,但是mapper已经将相同key的键值对合并了,所以value是一个集合
//因此这里的value是一个Iterable<Text>可迭代的集合
public void reduce(Text key, Iterable<Text> values, Context context) throws IOException, InterruptedException {
context.write(key, new Text(""));
}
}
public static void main(String[] args) throws Exception {
Configuration conf = new Configuration();
// 设置输入输出文件目录
String[] ioArgs = new String[] { "hdfs://192.168.145.128:9000/data_in", "hdfs://192.168.145.128:9000/clean_same_out" };
String[] otherArgs = new GenericOptionsParser(conf, ioArgs).getRemainingArgs();
if (otherArgs.length != 2) {
System.err.println("Usage: <in> <out>");
System.exit(2);
}
// 设置一个job
Job job = Job.getInstance(conf, "clean same data");
job.setJarByClass(CleanSameData.class);
// 设置Map、Combine和Reduce处理类
job.setMapperClass(Map.class);
job.setCombinerClass(Reduce.class);
job.setReducerClass(Reduce.class);
// 设置输出类型
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(Text.class);
// 将输入的数据集分割成小数据块splites,提供一个RecordReder的实现
job.setInputFormatClass(TextInputFormat.class);
// 提供一个RecordWriter的实现,负责数据输出
job.setOutputFormatClass(TextOutputFormat.class);
// 设置输入和输出目录
FileInputFormat.addInputPath(job, new Path(otherArgs[0]));
FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));
System.exit(job.waitForCompletion(true) ? 0 : 1);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于MapReduce的招聘数据清洗项目(免费提供源码)
共92个文件
xml:82个
java:5个
md:3个
需积分: 5 0 下载量 196 浏览量
2024-06-18
00:40:16
上传
评论
收藏 48KB ZIP 举报
温馨提示
基于MapReduce的招聘数据清洗项目是一个高效处理和清洗大规模招聘数据的解决方案。MapReduce是一种编程模型,主要用于大数据的分布式处理,适合处理大量非结构化或半结构化数据。该项目旨在清洗和规范化招聘数据,以提高数据的质量和可用性。 项目的主要步骤包括数据分割、映射、归约和合并。在数据分割阶段,原始招聘数据被分割成小块,以便于并行处理。接下来,映射(Map)阶段对每个数据块进行初步清洗和转换,将非结构化数据转化为键值对。例如,可以提取职位名称、公司名称、工作地点等关键信息。 归约(Reduce)阶段对映射后的数据进行进一步处理,合并相同键的值,以消除冗余和错误数据。例如,可以将重复的职位信息合并,并标准化不同格式的相同数据项。最后,将清洗后的数据重新合并,生成最终的干净数据集。
资源推荐
资源详情
资源评论
收起资源包目录
基于MapReduce的招聘数据清洗项目(免费提供源码).zip (92个子文件)
readme1.md 6B
readme3.md 6B
MapReduce-master
pom.xml 2KB
src
test
java
com
km
AppTest.java 278B
main
java
com
km
App.java 169B
sogou
CleanSameData.java 4KB
TopKeyword.java 4KB
KeyWordCount.java 3KB
resource
log4j.properties 11KB
.idea
dictionaries
.xml 88B
libraries
Maven__commons_cli_commons_cli_1_2.xml 502B
Maven__org_apache_hadoop_hadoop_mapreduce_client_app_2_6_0.xml 652B
Maven__org_apache_commons_commons_math3_3_1_1.xml 558B
Maven__org_apache_hadoop_hadoop_mapreduce_client_shuffle_2_6_0.xml 680B
Maven__commons_daemon_commons_daemon_1_0_13.xml 556B
Maven__javax_xml_stream_stax_api_1_0_2.xml 515B
Maven__org_apache_directory_server_apacheds_i18n_2_0_0_M15.xml 622B
Maven__org_apache_commons_commons_compress_1_4_1.xml 579B
Maven__commons_logging_commons_logging_1_1_3.xml 560B
Maven__org_hamcrest_hamcrest_core_1_3.xml 520B
Maven__org_fusesource_leveldbjni_leveldbjni_all_1_8.xml 579B
Maven__org_apache_hadoop_hadoop_annotations_2_6_0.xml 589B
Maven__xmlenc_xmlenc_0_52.xml 454B
Maven__com_sun_jersey_jersey_client_1_9.xml 528B
Maven__org_apache_hadoop_hadoop_auth_2_6_0.xml 540B
Maven__commons_lang_commons_lang_2_6.xml 513B
Maven__com_google_guava_guava_11_0_2.xml 501B
Maven__junit_junit_4_11.xml 443B
Maven__org_slf4j_slf4j_api_1_7_5.xml 494B
Maven__commons_io_commons_io_2_4.xml 491B
Maven__javax_servlet_jsp_jsp_api_2_1.xml 498B
Maven__commons_codec_commons_codec_1_4.xml 524B
Maven__com_google_code_findbugs_jsr305_1_3_9.xml 533B
Maven__commons_collections_commons_collections_3_2_1.xml 604B
Maven__com_sun_jersey_jersey_server_1_9.xml 528B
Maven__org_apache_hadoop_hadoop_common_2_6_0.xml 554B
Maven__commons_configuration_commons_configuration_1_6.xml 612B
Maven__org_apache_httpcomponents_httpcore_4_2_4.xml 551B
Maven__org_htrace_htrace_core_3_0_4.xml 512B
Maven__commons_digester_commons_digester_1_8.xml 557B
Maven__tomcat_jasper_runtime_5_5_23.xml 524B
Maven__javax_servlet_servlet_api_2_5.xml 510B
Maven__javax_activation_activation_1_1.xml 515B
Maven__org_apache_hadoop_hadoop_yarn_common_2_6_0.xml 589B
Maven__org_apache_directory_api_api_util_1_0_0_M20.xml 575B
Maven__commons_beanutils_commons_beanutils_core_1_8_0.xml 617B
Maven__com_thoughtworks_paranamer_paranamer_2_3.xml 548B
Maven__org_apache_hadoop_hadoop_yarn_server_common_2_6_0.xml 638B
Maven__org_mortbay_jetty_jetty_6_1_26.xml 505B
Maven__commons_httpclient_commons_httpclient_3_1.xml 579B
Maven__org_apache_hadoop_hadoop_mapreduce_client_core_2_6_0.xml 659B
Maven__asm_asm_3_1.xml 414B
Maven__org_apache_directory_api_api_asn1_api_1_0_0_M20.xml 603B
Maven__org_codehaus_jackson_jackson_jaxrs_1_9_13.xml 573B
Maven__org_apache_zookeeper_zookeeper_3_4_6.xml 538B
Maven__org_codehaus_jackson_jackson_core_asl_1_9_13.xml 594B
Maven__org_slf4j_slf4j_log4j12_1_7_5.xml 522B
Maven__org_mortbay_jetty_jetty_util_6_1_26.xml 540B
Maven__org_codehaus_jackson_jackson_xc_1_9_13.xml 552B
Maven__com_google_protobuf_protobuf_java_2_5_0.xml 562B
Maven__org_apache_hadoop_hadoop_mapreduce_client_jobclient_2_6_0.xml 694B
Maven__org_apache_hadoop_hadoop_hdfs_2_6_0.xml 540B
Maven__commons_beanutils_commons_beanutils_1_7_0.xml 582B
Maven__javax_xml_bind_jaxb_api_2_2_2.xml 507B
Maven__org_xerial_snappy_snappy_java_1_0_4_1.xml 554B
Maven__org_apache_hadoop_hadoop_mapreduce_client_common_2_6_0.xml 673B
Maven__log4j_log4j_1_2_17.xml 457B
Maven__org_apache_hadoop_hadoop_yarn_client_2_6_0.xml 589B
Maven__org_codehaus_jackson_jackson_mapper_asl_1_9_13.xml 608B
Maven__xml_apis_xml_apis_1_3_04.xml 490B
Maven__commons_net_commons_net_3_1.xml 502B
Maven__org_apache_curator_curator_recipes_2_6_0.xml 572B
Maven__com_google_code_gson_gson_2_2_4.xml 503B
Maven__org_apache_curator_curator_framework_2_6_0.xml 586B
Maven__commons_el_commons_el_1_0.xml 491B
Maven__io_netty_netty_3_6_2_Final.xml 504B
Maven__xerces_xercesImpl_2_9_1.xml 489B
Maven__org_apache_directory_server_apacheds_kerberos_codec_2_0_0_M15.xml 692B
Maven__org_apache_hadoop_hadoop_client_2_6_0.xml 554B
Maven__org_apache_curator_curator_client_2_6_0.xml 565B
Maven__org_apache_httpcomponents_httpclient_4_2_5.xml 565B
Maven__org_apache_avro_avro_1_7_4.xml 483B
Maven__com_sun_jersey_jersey_core_1_9.xml 514B
Maven__org_tukaani_xz_1_0.xml 439B
Maven__org_apache_hadoop_hadoop_yarn_api_2_6_0.xml 568B
vcs.xml 180B
misc.xml 439B
compiler.xml 630B
modules.xml 258B
encodings.xml 210B
MapReduce.iml 8KB
readme2.md 6B
共 92 条
- 1
资源评论
阿吉的呓语
- 粉丝: 2560
- 资源: 374
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功