mapreduce中分割字串

2021-08-06 07:49:10 字數 1075 閱讀 1775

剛學mapreduce沒多久,在預設的輸入分片中,經常要對一行的資料進行劃分,如果資料的格式劃分的清除,在分割這一行資料的時候也就好劃分了,但是有時候,資料的格式並不規整,所以劃分起來就得多寫些**了。

例如:204001 01 02 03 07 10 25 07這種資料之間的間距是一樣的都是乙個空格的間距,所以在map中接受的資料可以直接通過value.split(」 「)就可以獲取這一行所有的資料了。

如果資料的間隔不是一樣的,例如:apr 23 11:49:54 hostapd: wlan0: sta 14:7d:c5:9e:fb:84這些資料之間的間距不是一樣的,如果通過value.split(」 「)來劃分

string line = "apr  23    11:49:54  hostapd: wlan0: sta 14:7d:c5:9e:fb:84";

string strs = line.split(" ");

for(string str : strs)

那麼輸出的結果就是

apr

2311:49

:54hostapd:

wlan0:

sta14:7d

:c5:9e

:fb:84

那麼在獲取的string陣列中取資料的時候就會得到一些空的字串。而split中的引數還可以傳遞乙個正規表示式,所以這裡可以通過正規表示式來解決。

string line = "apr  23    11:49:54  hostapd: wlan0: sta 14:7d:c5:9e:fb:84";

string strs = line.split("\\s++");

for(string str : strs)

這裡的\s是空格需要兩個\來轉移,++也就是多個的意思,這樣就可以劃分多個不同間隔的資料了。

結果:

apr

2311:49

:54hostapd:

wlan0:

sta14:7d

:c5:9e

:fb:84

sql中分割字串

set ansi nulls on set quoted identifier on goalter function dbo get strarraystrofindex str varchar 1024 要分割的字串 split varchar 10 分隔符號 index int 取第幾個元素 ...

C C 中分割字串

我最憐君中宵舞 道 男兒到死心如鐵 看試手,補天裂 解析http響應報文的時候,響應頭中除了第一行,其他行都是key value結構,怎麼高效方便地解析成map型別的資料呢?我首先想到的就是sscanf函式,於是寫了如下程式 include intmain 然後輸出卻是 sss 顯然不行,於是開始上...

關於在lotus domino中分割字串的問題!

以前用lotus domino為客戶寫的辦公自動化程式,出了問題 發現用lotus的 contains函式存在問題,當要判斷的字串太大時,就會報錯.這是以前的寫法 note acro contains sendto dim flag as variant flag evaluate note acr...