目前在做兩個專案,乙個搜尋平台化乙個排序服務化,在專案開發中兩者都用到了spark開發資料處理,遇到問題多多,但解決後效能提公升幾十倍不止,下面記錄下兩次優化。
二、在對特徵進行處理的時候,我們為了做特徵本地化需要根據某條特徵所在的城市切分shard,並且很多其他資訊要從多個hive表讀取,一期為了做到通用化將多**資料構造了dataframe,註冊成記憶體表然後通過迴圈執行sparksql將結果寫入到hdfs目錄中,此方案可行靈活性不錯,但是在shard非常多的情況下,執行時間甚至超過乙個多小時,完全不能忍……
後面調研各種資訊及原始碼後,做了**上的修改,將構造的dataframe中的row構造成pair,並重寫
rddmultipletextoutputformat,將結果根據key資訊直接寫入到多個檔案中,而不再需要進行迴圈執行sparksql,效能直接提公升十幾倍以上。
關於兩次fork
兩次fork 的作用 首先,要了解什麼叫殭屍程序,什麼叫孤兒程序,以及伺服器程序執行所需要的一些條件。兩次fork 就是為了解決這些相關的問題而出現的一種程式設計方法。孤兒程序 孤兒程序是指父程序在子程序結束之前死亡 return 或exit 如下圖1所示 在一定時間內,當系統發現孤兒程序時,ini...
關於兩次fork
兩次fork 的作用 首先,要了解什麼叫殭屍程序,什麼叫孤兒程序,以及伺服器程序執行所需要的一些條件。兩次fork 就是為了解決這些相關的問題而出現的一種程式設計方法。孤兒程序 孤兒程序是指父程序在子程序結束之前死亡 return 或exit 如下圖1所示 在一定時間內,當系統發現孤兒程序時,ini...
兩次left join 查詢
t1 id是第乙個球隊的id號 t2 id是第二個球隊的id號 t1 score是第乙個球隊的的比分 t2 score是第二個球隊的的比分 第一行的含義是 3號球隊南韓和4號球隊澳大利亞的比分是1 2,比賽時間是1422694800 需求 將每隊的比賽列出 如 南韓 1 2 澳大利亞 1422694...