hdfs核驗身份證號

合法的身份證:? 18位, 前17位數(shù)字,第18位是數(shù)字或者X, 第7-10位時年<=2024, 第8-9是月份,第10-11是日期

1、傳輸文件

(1)通過手動編輯。創(chuàng)建文件,通過(hadoop fs -put datasource.txt /)傳送

編輯

編輯

(2)通過fz傳遞

(3)通過郵箱傳遞

2、創(chuàng)建Map類

(1)創(chuàng)建idMapper,確定輸入、輸出鍵值類型

輸入鍵采用Object類型、值為Text,輸出鍵Text,值Nullwritable

(此次只用考慮鍵,不用考慮值)

編輯

(2)重寫map,刪除不必要語句;同時判斷是否合法,合法輸出

編輯

(3)將身份賬號以行進行切割,存入數(shù)組,進行判斷

編輯

3、創(chuàng)建reduce類

(1)創(chuàng)建reduce類,確定輸入,輸出鍵值類型;同時,重寫reducer

以map輸出作為輸入

編輯

4、書寫判斷是否合法的方法

源文件:

編輯

(1)去重(不增加代碼)

編輯

(2)身份證號長是否為18位編輯

查看:

編輯

(3)前17位是否是數(shù)字

使用Character.isDigit(),傳入的字符是一個數(shù)字字符(0-9),也可使用數(shù)組+for循環(huán)判斷

不是數(shù)字字符返回false

編輯

查看:

編輯

(4)檢查第18位(是不是數(shù)字或者X)

編輯

查看:

編輯

(5)截取判斷第7-10位時年<=2024, 第8-9是月份,第10-11日期是否合理

編輯

查看:

編輯

五、實驗結(jié)果與分析

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容