企业岗位需求决策----数据清洗

第一关: 使用jdbc进行数据插入

package net.educoder;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.DriverManager;public class App {private static final String driver = "com.mysql.jdbc.Driver";private static final String url = "jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=UTF-8";private static final String username = "root";private static final String password = "123123";private static Connection conn = null;static {try {/*** 加载驱动*//*----------begin----------*/Class.forName(driver);/*----------end----------*/} catch (Exception ex) {ex.printStackTrace();}}/*** 获取jdbc连接** @return connection*/public static Connection getConnection() {/*** 1.对conn进行排空处理* 2.如果为空,则重新创建connection* 3.如果不为空,则直接返回connection*//*----------begin----------*/if (conn == null) {try {conn = DriverManager.getConnection(url, username, password);} catch (SQLException e) {e.printStackTrace();}return conn;}return conn;/*----------end----------*/}public static void main(String[] args) {/*** 1.调用getConnection()方法,获取connection* 2.编写SQL语句 --》insert into users (username,password) values (?,?)* 3.创建预处理对象* 4.设置值* 5.执行SQL,* 6.执行完毕之后,返回Int类型的i(返回变量),如果i =1 ,请在控制台打印字符串success,反之,请打印error* 7.关闭资源*      注意:记得要进行异常处理*//*----------begin----------*/Connection connection = getConnection();String sql = "insert into users (username,password) values (?,?)";PreparedStatement stmt = null;try {stmt = connection.prepareStatement(sql);stmt.setString(1, "Alice");  //此处的1代表一个SQL语句中的一个?stmt.setString(2, "123456");int i = stmt.executeUpdate();System.out.println(i == 1 ? "success" : "error");} catch (SQLException e) {e.printStackTrace();} finally {try {stmt.close();connection.close();} catch (SQLException e) {e.printStackTrace();}}/*----------end----------*/}
}

第二关:使用c3p0连接池完成数据插入

package net.educoder;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
public class App {private static String url = "jdbc:mysql://localhost:3306/mydb";private static String user = "root";private static String password = "123123";private static String driverClass = "com.mysql.jdbc.Driver";public static void main(String[] args) throws Exception {/**---------------begin-----------------*///1)创建连接池对象ComboPooledDataSource cds = new ComboPooledDataSource();//2)设置连接参数cds.setJdbcUrl(url);cds.setUser(user);cds.setPassword(password);cds.setDriverClass(driverClass);//3)设置连接池相关的参数cds.setInitialPoolSize(5);//初始化连接数cds.setMaxPoolSize(10);//最大连接数cds.setCheckoutTimeout(3000);//最大等待时间cds.setMinPoolSize(3); //最小连接数//4)获取连接Connection connection = cds.getConnection();//5)构建预处理对象String SQL = "insert into users(username,password) values (?,?)";PreparedStatement pstm = connection.prepareStatement(SQL);//6)设置SQL参数pstm.setString(1, "alice");pstm.setString(2, "123456");//7)运行SQL,返回Int,请使用变量iint i = pstm.executeUpdate();/**---------------end-----------------*/String result = i == 1 ? "数据插入成功" : "数据插入失败";File file = new File(args[0]);OutputStreamWriter oStreamWriter = new OutputStreamWriter(new FileOutputStream(file), "utf-8");oStreamWriter.append(result);oStreamWriter.close();}
}

第三关:MapReduce数据清洗

package net.educoder;
import net.educoder.entity.positionInfo;
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.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.PreparedStatement;
public class mr {static class mapper extends Mapper<LongWritable, Text, positionInfo, NullWritable> {private positionInfo positionInfo = new positionInfo();Connection connection = DBHelper.getConnection();@Overrideprotected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {/***    1.将value转换成String --> str*    2.将str进行切割,切割标志为:\00,返回数组split*    3.对数组split进行长度判断,如果长度为6,则进行下一步处理,反之,过滤掉*    4.将数组的split的元素逐个取出,并封装到positionInfo对象中说明:split[0] -->position(职位)split[1] -->require (职位要求)split[2] -->type(职位类型)split[3] -->num(人数)split[4] -->address(地址)split[5] -->time(发布时间)*    5.判断position字符串中是否包含“大数据”,如果包含,则给 positionInfo.setLabel("大数据");反之,则 positionInfo.setLabel("其他");*    6.编写SQL*    7.执行SQL*//**--------------------begin----------------------**/String str = value.toString();String[] split = str.split("\00");if (split.length == 6) {String position = split[0];String require = split[1];String type = split[2];String num = split[3];String address = split[4];String time = split[5];positionInfo.setPosition(position);positionInfo.setRequire(require);positionInfo.setAddress(address);positionInfo.setNum(num);positionInfo.setTime(time);positionInfo.setType(type);boolean contains = position.contains("大数据");if (contains) {positionInfo.setLabel("大数据");} else {positionInfo.setLabel("其他");}String sql = "insert into positioninfo (position,type,num,address,time,require_,label) values(?,?,?,?,?,?,?)";try {PreparedStatement prepareStatement = connection.prepareStatement(sql);prepareStatement.setString(1, positionInfo.getPosition());prepareStatement.setString(2, positionInfo.getType());prepareStatement.setString(3, positionInfo.getNum());prepareStatement.setString(4, positionInfo.getAddress());prepareStatement.setString(5, positionInfo.getTime());prepareStatement.setString(6, positionInfo.getRequire());prepareStatement.setString(7, positionInfo.getLabel());prepareStatement.executeUpdate();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}context.write(positionInfo, NullWritable.get());}/**--------------------end------------------------**/}}public static void main(String[] args) throws Exception {/**--------------------begin----------------------**/Configuration conf = new Configuration();Job job = Job.getInstance(conf);job.setJarByClass(mr.class);job.setMapperClass(mapper.class);job.setMapOutputKeyClass(positionInfo.class);job.setMapOutputValueClass(NullWritable.class);job.setNumReduceTasks(0);FileInputFormat.setInputPaths(job, new Path(args[0]));FileOutputFormat.setOutputPath(job, new Path(args[1]));boolean result = job.waitForCompletion(true);System.exit(result ? 0 : 1);/**--------------------end------------------------**/}
}

【企业岗位需求决策--数据清洗】相关推荐

  1. 就业丨得益于AI,这五个行业岗位需求将呈现显著增长趋势

    人工智能与人类工作是当下许多人津津乐道的一个话题,而讨论的重点大多是围绕在"未来人工智能会不会抢走我们的工作"这个方面.本文作者 Babak Hodjat 是人工智能初创企业 Se ...

  2. 企业建立数据驱动决策该如何做?终于有大神总结全了

    在企业的日常活动和经营中,数据无处不在,各类数据的汇总.整合.分析.研究对企业的发展.决策有着十分重要的作用. 数据化运营对企业有多重要? 1.销售&市场 销售是企业非常重要的业务部门,他们往 ...

  3. 超越阿里达摩院成绩,这个斯坦福团队用“国产求解器”助中国企业实现智能决策|快公司...

    关注ITValue,看企业级最新鲜.最价值报道! "高性能科学计算软件的开发,一直是工业界和学术界关怀的问题,MindOpt的单纯形求解算法排名榜首,是中国企业近些年来在优化计算软件范畴获得 ...

  4. java-php-python-智慧校园实习岗位需求对接网络平台计算机毕业设计

    java-php-python-智慧校园实习岗位需求对接网络平台计算机毕业设计 java-php-python-智慧校园实习岗位需求对接网络平台计算机毕业设计 本源码技术栈: 项目架构:B/S架构 开 ...

  5. java计算机毕业设计智慧校园实习岗位需求对接网络平台源程序+mysql+系统+lw文档+远程调试

    java计算机毕业设计智慧校园实习岗位需求对接网络平台源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计智慧校园实习岗位需求对接网络平台源程序+mysql+系统+lw文档+远程调试 ...

  6. java计算机毕业设计智慧校园实习岗位需求对接网络平台源代码+系统+数据库+lw文档

    java计算机毕业设计智慧校园实习岗位需求对接网络平台源代码+系统+数据库+lw文档 java计算机毕业设计智慧校园实习岗位需求对接网络平台源代码+系统+数据库+lw文档 本源码技术栈: 项目架构:B ...

  7. 中国第三方物流需求决策研究

    中国第三方物流需求决策研究 摘要: 自从物流理论引入我国后,受到了政府和企业前所未有的关注.作为物流专业化集中表现的第三方物流也具有很多优点.从第三方物流需求的角度来看,尽管采用第三方物流能为企业带来 ...

  8. 基于JAVA智慧校园实习岗位需求对接网络平台计算机毕业设计源码+系统+mysql数据库+lw文档+部署

    基于JAVA智慧校园实习岗位需求对接网络平台计算机毕业设计源码+系统+mysql数据库+lw文档+部署 基于JAVA智慧校园实习岗位需求对接网络平台计算机毕业设计源码+系统+mysql数据库+lw文档 ...

  9. 企业有需求,那么站点就应该不断完善功能

    今天给信息审核功能加了个中间环节,原来企业修改已经发布的信息时,如果有修改将重新提交审核,那么这么信息在审核阶段是将在前台是不能显示的,这样就遏制了企业更新信息的积极性,导致站点信息更新不及时.陈旧, ...

最新文章

  1. java api 设计_Java API设计实践
  2. [笔记].关于Nios II的数据类型的一点想法
  3. 所有的编程语言知识,都包含在这100张思维导图里了丨GitHub 13.1k星
  4. 自定义UICollectionView
  5. 09-spring学习-资源访问接口
  6. C语言基础-第一个C程序
  7. Java集合框架一览笔录
  8. 09-Windows Server 2012 R2 会话远程桌面-标准部署-使用PowerShell进行部署2-2
  9. SAP License:基于成本的获利分析表CE1-CE4
  10. 数据工作者的福音:Google 发布正式版数据搜索工具啦!
  11. CMake笔记3构建复杂项目
  12. bboss session自定义session id生成机制介绍
  13. 十分钟让你对C++ Traits大彻大悟
  14. 如何查看Dll中包含了哪些函数
  15. 如何手动编辑art分区修改qsdk(qca9531、qca9563)无线mac地址
  16. 【软件工程】——软工视频总结
  17. 本地组策略编辑器计算机配置,本地组策略编辑器
  18. 论文复现_芯片定位和引脚缺陷检测
  19. Unity制作UFO小游戏
  20. react-ative安装expo-linking后运行报错

热门文章

  1. 韩式多用动态图(浪漫情侣)
  2. my sql常用的数据类型
  3. 品牌如何给自己创建一个百度百科词条,在百科上传企业资料方法
  4. 触控科技拆分教育事业子公司,命名为触控未来科技有限公司
  5. html给图片加描边,photoshop中如何给图片文字加描边
  6. 中国CAD公司市场分析
  7. 在 Windows 7上安装 TensorFlow
  8. 投资就是时间上的平衡消费
  9. 饥荒 special events
  10. Subscripts