先確定要加分割槽的位置,是在map之後加的
當需要將統計結果輸出到不同的檔案中就需要自定義分割槽並且設定:
//8 指定自定義分割槽器
job.setpartitionerclass(provincepartitioner.class);
//9 同時指定相應數量的reducetask
job.setnumreducetasks(5);
預設分割槽器hashpartitioner,自定義乙個分割槽類provincepartitioner並且讓這個類繼承partitioner,還要實現getpartition()方法
public int getpartition(text text, flowbean flowbean, int numpartitions) {
在getpartition()方法中寫自己需要的分割槽需求
,再序列化的基礎之上增加分割槽的功能
寫乙個分割槽類provincepartitioner
public class provincepartitioner extends partitioner{
@override
public int getpartition(text text, flowbean flowbean, int numpartitions) {
//獲取手機號前三位prephone
string phone = text.tostring();
string prephone = phone.substring(0, 3);
這裡要注意傳入的兩個引數,是map的輸出kv,
(4)在驅動函式中增加自定義資料分割槽設定和reducetask設定
//8 指定自定義分割槽器
job.setpartitionerclass(provincepartitioner.class);
//9 同時指定相應數量的reducetask
job.setnumreducetasks(5);
手機號判斷
public class smsutil toast.maketext activity,手機號碼輸入有誤!toast.length short show return false 驗證手機格式 public static boolean ismobileno string mobilenums 1...
手機號隱藏
多的不說,直接上demo string phone 12345678983 phone.replaceall d d d 1 2 利用string自帶的replaceall方法進行替換達到隱藏效果,此方法的第乙個引數為分組正規表示式 引數注釋 按照上面demo中替換後的手機號為 123 983 注意...
手機號查詢
題目 信服君接受一項任務需要製作乙個手機號碼查詢系統,輸入連續的數字後,需要顯示所有包含該連續數字的手機號。為了驗證演算法,信服君當前只需輸出手機號的個數即可。注 直接用數學的查詢方式如果 phonenum i find test string npos 會超時,只能ac80 這裡用空間替換時間效率...