spark優化之資料結構

2021-09-21 02:16:24 字數 767 閱讀 3321

1、優先使用陣列以及字串,而不是集合類。也就是說,優先用array,而不是arraylist、linkedlist、hashmap等集合。

比如,有個listlist = new arraylist(),將其替換為int arr = new int。這樣的話,array既比list少了額外資訊的儲存開銷,還能使用原始資料型別(int)來儲存資料,比list中用integer這種包裝型別儲存資料,要節省記憶體的多。

還比如,通常企業級應用中的做法是,對於hashmap、list這種資料,統一用string拼接成特殊格式的字串,比如mappersons = new hashmap()。可以優化為,特殊的字串格式:id:name,address|id:name,address...。

2、避免使用多層巢狀的物件結構。比如說,public class teacher 。就是非常不好的例子。因為teacher類的內部又巢狀了大量的小student物件。

比如說,對於上述例子,也完全可以使用特殊的字串來進行資料的儲存。比如,用json字串來儲存資料,就是乙個很好的選擇。

,]}3、對於有些能夠避免的場景,盡量使用int替代string。因為string雖然比arraylist、hashmap等資料結構高效多了,占用記憶體量少多了,但是之前分析過,還是有額外資訊的消耗。比如之前用string表示id,那麼現在完全可以用數字型別的int,來進行替代。

這裡提醒,在spark應用中,id就不要用常用的uuid了,因為無法轉成int,就用自增的int型別的id即可。(sdfsdfdf-234242342-sdfsfsfdfd)

Spark效能優化 優化資料結構

1 優先使用陣列以及字串,而不是集合類。也就是說,優先用array,而不是arraylist linkedlist hashmap等集合。比如,有個list list new arraylist 將其替換為int arr new int。這樣的話,array既比list少了額外資訊的儲存開銷,還能使...

spark優化之資料傾斜

資料傾斜的概念 有的時候,我們可能會遇到大資料計算中乙個最棘手的問題 資料傾斜,此時spark作業的效能會比期望的差的多。資料傾斜調優,就是使用各種技術方案解決不同型別的資料傾斜問題以保證spark作業的效能 絕大多數task執行的都非常快,但個別task執行極慢,比如,總共有1000個task,9...

Spark優化之廣播共享資料

目錄 一 廣播變數 broadcast variable 二 例子 三 廣播的變數是存放在哪?唯讀屬性,每個節點拷貝 好處 節省了記憶體的消耗,節省流量的消耗 每個節點上可能有 100 個 task 廣播前 val myconf new myconfiguration 配置檔案很大,100m val...