溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

大數(shù)據(jù)文本并行計(jì)算實(shí)現(xiàn)方式是什么

發(fā)布時(shí)間:2022-01-15 16:14:23 來(lái)源:億速云 閱讀:146 作者:柒染 欄目:大數(shù)據(jù)

本篇文章為大家展示了大數(shù)據(jù)文本并行計(jì)算實(shí)現(xiàn)方式是什么,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

對(duì)于大數(shù)據(jù)文件的處理,可以充分利用現(xiàn)代計(jì)算機(jī)的多核CPU,實(shí)施多線程并行計(jì)算,從而達(dá)到提速的目的。然而,要在程序語(yǔ)言中編寫(xiě)多線程并行程序,并不是一件容易的事。

要并行處理就需要將源文件分段,每個(gè)線程處理其中一段。文本文件一般是每一行對(duì)應(yīng)一條記錄,每一行長(zhǎng)度不一定相同。所以,不能按行數(shù)分段,因?yàn)槊看味紡念^遍歷,起不到提高性能的目標(biāo);若按字節(jié)分段則不需要遍歷,但有可能分段點(diǎn)正好落在行的中間,造成一行被拆進(jìn)兩段,導(dǎo)致數(shù)據(jù)錯(cuò)誤。有效的解決辦法是采用自動(dòng)去頭補(bǔ)尾的字節(jié)分段機(jī)制,即分段開(kāi)始點(diǎn)所在的行被舍棄,分段結(jié)束點(diǎn)所在的行會(huì)被補(bǔ)齊,這樣將確保每一段都由完整的行構(gòu)成,不會(huì)有數(shù)據(jù)錯(cuò)誤。另外,還有線程的管理和控制等問(wèn)題,如果管理不當(dāng),則會(huì)出現(xiàn)越界的情況。

如果有集算器SPL就簡(jiǎn)單多了,它對(duì)多線程并行計(jì)算進(jìn)行了封裝,代碼寫(xiě)起來(lái)不僅更短而且更容易理解,這樣在獲得高性能的同時(shí),讓程序員把注意力更多地放在計(jì)算的整體邏輯上,而不必糾纏于為了提高性能而采用的并行細(xì)節(jié)。用集算器SPL寫(xiě)出并行計(jì)算代碼:


A

B

C

1

=file(“data.txt”)

/源文件

2

fork 4

=A1.cursor@t(amount;A2:4)

/分作4段并行,分別建立游標(biāo)

3


=B2.groups(;sum(amount):am)

/遍歷游標(biāo)計(jì)算amount之和

4

=A2.conj().sum(am)

/匯總每個(gè)線程的結(jié)果

文本解析的時(shí)間經(jīng)常比計(jì)算要長(zhǎng)得多,有時(shí)候只要解析能夠并行,計(jì)算本身是否并行并不重要。所以SPL對(duì)于讀取數(shù)據(jù)提供了簡(jiǎn)單的內(nèi)置并行選項(xiàng),如果對(duì)數(shù)據(jù)讀取次序不關(guān)心,比如分組、求和運(yùn)算就不在乎次序,可以更簡(jiǎn)單地寫(xiě)出代碼:


A

B

1

=file("orders.txt").cursor@mt()

/@m選項(xiàng)將自動(dòng)根據(jù)系統(tǒng)配置決定并行的線程數(shù)量

2

=A1.select(month(Date)==10)

/過(guò)濾

3

=A2.groups(ID;sum(COST*WEIGHT):VALUE)

/分組、匯總(串行)

上述內(nèi)容就是大數(shù)據(jù)文本并行計(jì)算實(shí)現(xiàn)方式是什么,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI