翟瑞霞 趙瑞勝
摘要:在日常工作中,大家都會(huì)經(jīng)常面臨從海量數(shù)據(jù)中提取有用的信息。當(dāng)從上百萬的數(shù)據(jù)中進(jìn)行數(shù)據(jù)提取時(shí),不僅會(huì)引起系統(tǒng)軟件崩潰、還會(huì)導(dǎo)致電腦崩潰,最終使得工作無法繼續(xù)開展下去。本創(chuàng)新方法特針對(duì)該類問題提出了有效的解決方案,為今后遇到同類問題提供了工作思路。
關(guān)鍵詞:CPU;內(nèi)存;死機(jī);軟件無響應(yīng);崩潰
中圖分類號(hào):TP311 ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2020)31-0053-03
1 創(chuàng)新背景
在日常工作中,在開展數(shù)據(jù)處理工作中,最常見的數(shù)據(jù)提取方法無外乎數(shù)據(jù)篩選,即在海量的數(shù)據(jù)中,根據(jù)需要對(duì)數(shù)據(jù)加以篩選。
在數(shù)據(jù)篩選過程中,很多人接觸到的數(shù)據(jù)無非十幾條、幾十條、多則上千條或過萬條。在小數(shù)據(jù)量篩選中,利用CPU為2GHz/s處理速度、內(nèi)存為2G的計(jì)算機(jī)來說是小菜一碟。然而當(dāng)面對(duì)從百萬、千萬條的記錄中提取數(shù)據(jù)來說,那可不是幾秒鐘,十幾秒能完成的,而且還會(huì)導(dǎo)致內(nèi)存溢出、電腦死機(jī)、軟件無響應(yīng)等問題。針對(duì)這類問題,本文結(jié)合龐大的移動(dòng)話單數(shù)據(jù)提取工作,提出了創(chuàng)新、高效的解決方案。
2 傳統(tǒng)方法
2.1 傳統(tǒng)手段
目前用于數(shù)據(jù)處理主要基于OFFICE軟件中的EXCEL、ACCESS等小型數(shù)據(jù)庫(kù)、數(shù)據(jù)處理軟件開展工作。
傳統(tǒng)方法思路:打開數(shù)據(jù)庫(kù)文件à將文件內(nèi)容全部復(fù)制到EXCEL中à對(duì)文本進(jìn)行預(yù)處理à對(duì)文本進(jìn)行篩選處理,獲取所需要的文本內(nèi)容,以下為利用EXCEL軟件進(jìn)行篩選的傳統(tǒng)方法。
2.1.1 小型話單數(shù)據(jù)的篩選
2.1.1.1 數(shù)據(jù)篩選預(yù)處理
數(shù)據(jù)篩選預(yù)處理,主要是將文件復(fù)制到EXCEL中,根據(jù)文本中字符串的特定分隔符將文本進(jìn)行分割處理:
2.1.1.2 根據(jù)條件篩選
經(jīng)分割,在EXCEL中利用篩選命令工具對(duì)該文本內(nèi)容進(jìn)行篩選,該工作可順利完成:
2.1.2 大型話單數(shù)據(jù)的篩選
第一步:打開要篩選的原始文件:
此時(shí)CPU占用率達(dá)到20%以上:
該文本共有625.3799萬行字符串:
第二步:將該打開的文本復(fù)制到EXCEL中:
1)復(fù)制:從下圖的復(fù)制情況來看,由于數(shù)據(jù)量龐大,導(dǎo)致復(fù)制出錯(cuò),無法進(jìn)行后續(xù)的粘貼、篩選等工作:
2) 粘貼:在復(fù)制粘貼的過程中,由于內(nèi)存溢出,無法完成復(fù)制粘貼的工作:
由上可見在龐大的數(shù)據(jù)量文本中進(jìn)行條件篩選,傳統(tǒng)方法無法實(shí)現(xiàn)。
2.2 傳統(tǒng)手段弊端
通過上面操作方式,傳統(tǒng)方法存在以下的弊?。?/p>
1) 打開龐大的原始數(shù)據(jù)庫(kù)文件耗時(shí)耗資源;
2) 在進(jìn)行預(yù)處理時(shí),將導(dǎo)致電腦CPU、內(nèi)存占用率居高不下,從而引起電腦無響應(yīng)及死機(jī)現(xiàn)象;
3) 在進(jìn)行條件篩選時(shí),將導(dǎo)致軟件無法響應(yīng),出現(xiàn)內(nèi)存溢出,無法完成篩選的命令;
4) 在使用EXCEL等軟件進(jìn)行數(shù)據(jù)的匯總篩選時(shí),會(huì)出現(xiàn)資源不足,無法容納所有數(shù)據(jù)量的問題。
3 創(chuàng)新方法
3.1 創(chuàng)新思路
本創(chuàng)新思路主要是從以下幾方面來開展:
1) 選擇文本所在的路徑,但并不打開文本文件;
2) 將需要篩選的內(nèi)容通過字符串匹配法進(jìn)行提取;
3) 對(duì)提取的文本直接拷貝到EXCEL中即可。
3.2 創(chuàng)新手段
本創(chuàng)新手段主要是借助正則表達(dá)式對(duì)未打開的文本文件進(jìn)行數(shù)據(jù)提取。從而實(shí)現(xiàn)了無須打開文本內(nèi)容便可以將所需要的內(nèi)容取出來,從而實(shí)現(xiàn)了數(shù)據(jù)處理的時(shí)效性與準(zhǔn)確性。
3.3 創(chuàng)新成效
3.3.1 正則表達(dá)式
正則表達(dá)式是對(duì)字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個(gè)“規(guī)則字符串”,通過“規(guī)則字符串”用來實(shí)現(xiàn)對(duì)字符串的過濾。
正則表達(dá)式的特點(diǎn):
1)靈活性、邏輯性和功能性非常的強(qiáng);
2)可以迅速地用極簡(jiǎn)單的方式達(dá)到字符串的復(fù)雜控制。
3)對(duì)于剛接觸的人來說,比較晦澀難懂。
3.3.2 創(chuàng)新案例
在此創(chuàng)新案例中,我們將會(huì)涉及正則表達(dá)式中最為常用的符號(hào):
(1)^:標(biāo)識(shí)字符串的開始
(2){}:表示重復(fù)的次數(shù);
(3)[]:表示篩選所包含的關(guān)鍵字符
(4)():表示一個(gè)字符串組
(5)|:表示或者的意思
創(chuàng)新案例分析
1)案例要求:將如下近4GB的文本文件中的所涉及的特定內(nèi)容過濾出來:
2)文本特點(diǎn):
其特點(diǎn)為數(shù)據(jù)量龐大、每一行為一個(gè)字符串,每一行的字符串中包含數(shù)字、字母、分號(hào)、下標(biāo)點(diǎn),該文本共有600多萬行字符串。
3)篩選要求:篩選第39列為500的字符串:
創(chuàng)新講解:根據(jù)正則表達(dá)式的語(yǔ)法要求,編輯篩選過濾語(yǔ)句為:^12;([0-9a-zA-Z.]*;){37}500;即可將第39列為500的字符串篩選過濾出來。
下圖中所標(biāo)注的黃色即為符合要求的字符串:
4 創(chuàng)新啟示
通過對(duì)大數(shù)據(jù)量的篩選創(chuàng)新可以總結(jié)得到,在日常的工作中,如果遇到了無法通過傳統(tǒng)、常規(guī)的手段解決的問題,都會(huì)給創(chuàng)新帶來新的機(jī)遇,只要大家能夠在平時(shí)多吸取各方面的知識(shí)、結(jié)合豐富的工作經(jīng)驗(yàn),就會(huì)為創(chuàng)新創(chuàng)造條件,創(chuàng)造出新的、寶貴經(jīng)驗(yàn)。經(jīng)過創(chuàng)新得到的經(jīng)驗(yàn),將會(huì)極大地提升工作效率,為實(shí)現(xiàn)創(chuàng)新中國(guó)夢(mèng)提供了一個(gè)前進(jìn)的臺(tái)階。
參考文獻(xiàn):
[1] Jeffrey E·F·Fried.精通正則表達(dá)式[美][M].電子工業(yè)出版社,2007.
【通聯(lián)編輯:李雅琪】