知不足而奋进 望远山而前行

hdfs核验身份证号

2024-06-01  本文已影响0人  许文雅

合法的身份证:  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日期是否合理

编辑

查看:

编辑

五、实验结果与分析

上一篇 下一篇

猜你喜欢

热点阅读