本發(fā)明涉及數(shù)據(jù)處理,尤其涉及一種行程數(shù)據(jù)排序方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、隨著電信市場(chǎng)迅速發(fā)展,用戶實(shí)時(shí)行程數(shù)據(jù)量呈指數(shù)級(jí)增長(zhǎng)。而對(duì)用戶實(shí)時(shí)行程數(shù)據(jù)進(jìn)行排序是一種常見的需求。現(xiàn)有的基于spark的行程數(shù)據(jù)排序方法,在進(jìn)行數(shù)據(jù)分區(qū)時(shí),有一定概率出現(xiàn)一個(gè)批次中同一用戶的多條地市行程數(shù)據(jù)容易分散在不同的分區(qū)中,導(dǎo)致用戶行程數(shù)據(jù)排序不準(zhǔn)確。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明提供一種行程數(shù)據(jù)排序方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì),用以解決現(xiàn)有技術(shù)中在進(jìn)行數(shù)據(jù)分區(qū)時(shí),有一定概率出現(xiàn)一個(gè)批次中同一用戶的多條地市行程數(shù)據(jù)容易分散在不同的分區(qū)中,導(dǎo)致用戶行程數(shù)據(jù)排序不準(zhǔn)確的缺陷,實(shí)現(xiàn)將同一用戶的各用戶實(shí)時(shí)行程數(shù)據(jù)落入同一分區(qū),能夠提升用戶行程數(shù)據(jù)排序的準(zhǔn)確性的目的。
2、本發(fā)明提供一種行程數(shù)據(jù)排序方法,包括:
3、將當(dāng)前批次的用戶實(shí)時(shí)行程數(shù)據(jù)封裝成一個(gè)彈性分布式數(shù)據(jù)集;
4、基于所述彈性分布式數(shù)據(jù)集中每條所述用戶實(shí)時(shí)行程數(shù)據(jù)中的手機(jī)號(hào)計(jì)算哈希值,并將所述哈希值與預(yù)設(shè)分區(qū)總數(shù)進(jìn)行取余計(jì)算,得到余數(shù);
5、基于各所述余數(shù)對(duì)所述彈性分布式數(shù)據(jù)集進(jìn)行初步數(shù)據(jù)分區(qū),得到多個(gè)分區(qū),并調(diào)整所述多個(gè)分區(qū)的邊界,直至所述多個(gè)分區(qū)的數(shù)據(jù)量分布均勻;
6、將數(shù)據(jù)量分布均勻的所述多個(gè)分區(qū)進(jìn)行數(shù)據(jù)打散,并存儲(chǔ)到磁盤中;
7、將所述磁盤中所述多個(gè)分區(qū)中的各所述用戶實(shí)時(shí)行程數(shù)據(jù)分別進(jìn)行排序。
8、根據(jù)本發(fā)明提供的一種行程數(shù)據(jù)排序方法,所述基于所述彈性分布式數(shù)據(jù)集中每條所述用戶實(shí)時(shí)行程數(shù)據(jù)中的手機(jī)號(hào)計(jì)算哈希值,包括:
9、獲取所述彈性分布式數(shù)據(jù)集中每條所述用戶實(shí)時(shí)行程數(shù)據(jù)中的手機(jī)號(hào)的后四位,得到第一字符串;
10、對(duì)所述第一字符串進(jìn)行哈希計(jì)算,得到所述哈希值。
11、根據(jù)本發(fā)明提供的一種行程數(shù)據(jù)排序方法,所述基于所述彈性分布式數(shù)據(jù)集中每條所述用戶實(shí)時(shí)行程數(shù)據(jù)中的手機(jī)號(hào)計(jì)算哈希值,包括:
12、對(duì)所述彈性分布式數(shù)據(jù)集中每條所述用戶實(shí)時(shí)行程數(shù)據(jù)中的手機(jī)號(hào)進(jìn)行反轉(zhuǎn)操作,得到第二字符串;
13、對(duì)所述第二字符串進(jìn)行哈希計(jì)算,得到所述哈希值。
14、根據(jù)本發(fā)明提供的一種行程數(shù)據(jù)排序方法,基于各所述余數(shù)對(duì)所述彈性分布式數(shù)據(jù)集進(jìn)行初步數(shù)據(jù)分區(qū),得到多個(gè)分區(qū),包括:
15、將所述彈性分布式數(shù)據(jù)集中所述余數(shù)相同的所述用戶實(shí)時(shí)行程數(shù)據(jù)劃分為一個(gè)分區(qū)。
16、根據(jù)本發(fā)明提供的一種行程數(shù)據(jù)排序方法,所述調(diào)整所述多個(gè)分區(qū)的邊界,直至所述多個(gè)分區(qū)的數(shù)據(jù)量分布均勻,包括:
17、循環(huán)執(zhí)行以下步驟,直至所述多個(gè)分區(qū)的數(shù)據(jù)量分布均勻:
18、對(duì)每個(gè)所述分區(qū)進(jìn)行抽樣,得到多個(gè)樣本;
19、統(tǒng)計(jì)所述多個(gè)樣本的手機(jī)號(hào)的分布概率;
20、基于所述分布概率調(diào)整各所述分區(qū)的分區(qū)邊界,以使所述分布概率最低的手機(jī)號(hào)對(duì)應(yīng)的各所述用戶實(shí)時(shí)行程數(shù)據(jù)從當(dāng)前分區(qū)調(diào)整到數(shù)據(jù)量低于所述當(dāng)前分區(qū)的另一分區(qū)。
21、根據(jù)本發(fā)明提供的一種行程數(shù)據(jù)排序方法,所述將所述磁盤中所述多個(gè)分區(qū)中的各所述用戶實(shí)時(shí)行程數(shù)據(jù)分別進(jìn)行排序,包括:
22、循環(huán)執(zhí)行以下步驟,直至每個(gè)數(shù)據(jù)段的長(zhǎng)度大于或等于預(yù)設(shè)長(zhǎng)度:
23、針對(duì)所述磁盤中每個(gè)所述分區(qū),查找所述分區(qū)中的各所述用戶實(shí)時(shí)行程數(shù)據(jù)中的所述數(shù)據(jù)段;所述數(shù)據(jù)段包括開始時(shí)間單調(diào)上升的單調(diào)上升段和開始時(shí)間嚴(yán)格下降的嚴(yán)格下降段;
24、將所述分區(qū)中的所述嚴(yán)格下降段進(jìn)行反轉(zhuǎn)操作;
25、在所述分區(qū)中的數(shù)據(jù)段的長(zhǎng)度小于所述預(yù)設(shè)長(zhǎng)度的情況下,將所述數(shù)據(jù)段與相鄰的數(shù)據(jù)段中的第一條所述用戶實(shí)時(shí)行程數(shù)據(jù)進(jìn)行歸并。
26、根據(jù)本發(fā)明提供的一種行程數(shù)據(jù)排序方法,還包括:
27、按照行程時(shí)間范圍,從排序后的所述多個(gè)分區(qū)中提取所述行程時(shí)間范圍內(nèi)各用戶在同一地市的所述用戶實(shí)時(shí)行程數(shù)據(jù);
28、將提取的所述行程時(shí)間范圍內(nèi)各用戶在同一地市的所述用戶實(shí)時(shí)行程數(shù)據(jù)推送至云數(shù)據(jù)庫(kù)中。
29、本發(fā)明還提供一種行程數(shù)據(jù)排序裝置,包括:
30、封裝模塊,用于將當(dāng)前批次的用戶實(shí)時(shí)行程數(shù)據(jù)封裝成一個(gè)彈性分布式數(shù)據(jù)集;
31、計(jì)算模塊,用于基于所述彈性分布式數(shù)據(jù)集中每條所述用戶實(shí)時(shí)行程數(shù)據(jù)中的手機(jī)號(hào)計(jì)算哈希值,并將所述哈希值與預(yù)設(shè)分區(qū)總數(shù)進(jìn)行取余計(jì)算,得到余數(shù);
32、分區(qū)模塊,用于基于各所述余數(shù)對(duì)所述彈性分布式數(shù)據(jù)集進(jìn)行初步數(shù)據(jù)分區(qū),得到多個(gè)分區(qū),并調(diào)整所述多個(gè)分區(qū)的邊界,直至所述多個(gè)分區(qū)的數(shù)據(jù)量分布均勻;
33、打散模塊,用于將數(shù)據(jù)量分布均勻的所述多個(gè)分區(qū)進(jìn)行數(shù)據(jù)打散,并存儲(chǔ)到磁盤中;
34、排序模塊,用于將所述磁盤中所述多個(gè)分區(qū)中的各所述用戶實(shí)時(shí)行程數(shù)據(jù)分別進(jìn)行排序。
35、本發(fā)明還提供一種電子設(shè)備,包括存儲(chǔ)器、處理器及存儲(chǔ)在存儲(chǔ)器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述程序時(shí)實(shí)現(xiàn)如上述任一種所述的行程數(shù)據(jù)排序方法。
36、本發(fā)明還提供一種非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,該計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上述任一種所述的行程數(shù)據(jù)排序方法。
37、本發(fā)明還提供一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上述任一種所述的行程數(shù)據(jù)排序方法。
38、本發(fā)明提供的一種行程數(shù)據(jù)排序方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì),首先,將當(dāng)前批次的用戶實(shí)時(shí)行程數(shù)據(jù)封裝成一個(gè)彈性分布式數(shù)據(jù)集;基于彈性分布式數(shù)據(jù)集中每條用戶實(shí)時(shí)行程數(shù)據(jù)中的手機(jī)號(hào)計(jì)算哈希值,并將哈希值與預(yù)設(shè)分區(qū)總數(shù)進(jìn)行取余計(jì)算,得到余數(shù);基于各余數(shù)對(duì)彈性分布式數(shù)據(jù)集進(jìn)行初步數(shù)據(jù)分區(qū),得到多個(gè)分區(qū);由于同一用戶的手機(jī)號(hào)對(duì)應(yīng)的余數(shù)相同,同一用戶的各用戶實(shí)時(shí)行程數(shù)據(jù)必然落入同一分區(qū);而后,調(diào)整多個(gè)分區(qū)的邊界,直至多個(gè)分區(qū)的數(shù)據(jù)量分布均勻;將數(shù)據(jù)量分布均勻的多個(gè)分區(qū)進(jìn)行數(shù)據(jù)打散,并存儲(chǔ)到磁盤中;將磁盤中多個(gè)分區(qū)中的各用戶實(shí)時(shí)行程數(shù)據(jù)分別進(jìn)行排序。因此,本發(fā)明可以將同一用戶的各用戶實(shí)時(shí)行程數(shù)據(jù)落入同一分區(qū),能夠提升用戶行程數(shù)據(jù)排序的準(zhǔn)確性。
1.一種行程數(shù)據(jù)排序方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的行程數(shù)據(jù)排序方法,其特征在于,所述基于所述彈性分布式數(shù)據(jù)集中每條所述用戶實(shí)時(shí)行程數(shù)據(jù)中的手機(jī)號(hào)計(jì)算哈希值,包括:
3.根據(jù)權(quán)利要求1所述的行程數(shù)據(jù)排序方法,其特征在于,所述基于所述彈性分布式數(shù)據(jù)集中每條所述用戶實(shí)時(shí)行程數(shù)據(jù)中的手機(jī)號(hào)計(jì)算哈希值,包括:
4.根據(jù)權(quán)利要求1至3任一項(xiàng)所述的行程數(shù)據(jù)排序方法,其特征在于,基于各所述余數(shù)對(duì)所述彈性分布式數(shù)據(jù)集進(jìn)行初步數(shù)據(jù)分區(qū),得到多個(gè)分區(qū),包括:
5.根據(jù)權(quán)利要求1至3任一項(xiàng)所述的行程數(shù)據(jù)排序方法,其特征在于,所述調(diào)整所述多個(gè)分區(qū)的邊界,直至所述多個(gè)分區(qū)的數(shù)據(jù)量分布均勻,包括:
6.根據(jù)權(quán)利要求1至3任一項(xiàng)所述的行程數(shù)據(jù)排序方法,其特征在于,所述將所述磁盤中所述多個(gè)分區(qū)中的各所述用戶實(shí)時(shí)行程數(shù)據(jù)分別進(jìn)行排序,包括:
7.根據(jù)權(quán)利要求1至3任一項(xiàng)所述的行程數(shù)據(jù)排序方法,其特征在于,還包括:
8.一種行程數(shù)據(jù)排序裝置,其特征在于,包括:
9.一種電子設(shè)備,包括存儲(chǔ)器、處理器及存儲(chǔ)在所述存儲(chǔ)器上并可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,其特征在于,所述處理器執(zhí)行所述程序時(shí)實(shí)現(xiàn)如權(quán)利要求1至7任一項(xiàng)所述的行程數(shù)據(jù)排序方法。
10.一種非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1至7任一項(xiàng)所述的行程數(shù)據(jù)排序方法。