合法的身份证: 18位, 前17位数字,第18位是数字或者X, 第7-10位时年<=2024, 第8-9是月份,第10-11是日期
1、传输文件
(1)通过手动编辑。创建文件,通过(hadoop fs -put datasource.txt /)传送
编辑
编辑
(2)通过fz传递
(3)通过邮箱传递
2、创建Map类
(1)创建idMapper,确定输入、输出键值类型
输入键采用Object类型、值为Text,输出键Text,值Nullwritable
(此次只用考虑键,不用考虑值)
编辑
(2)重写map,删除不必要语句;同时判断是否合法,合法输出
编辑
(3)将身份账号以行进行切割,存入数组,进行判断
编辑
3、创建reduce类
(1)创建reduce类,确定输入,输出键值类型;同时,重写reducer
以map输出作为输入
编辑
4、书写判断是否合法的方法
源文件:
编辑
(1)去重(不增加代码)
编辑
(2)身份证号长是否为18位编辑
查看:
编辑
(3)前17位是否是数字
使用Character.isDigit(),传入的字符是一个数字字符(0-9),也可使用数组+for循环判断
不是数字字符返回false
编辑
查看:
编辑
(4)检查第18位(是不是数字或者X)
编辑
查看:
编辑
(5)截取判断第7-10位时年<=2024, 第8-9是月份,第10-11日期是否合理
编辑
查看:
编辑
五、实验结果与分析