iPAS AI 應用規劃師中級 115 年第一次 科二 第 21 題 詳解
115 年第一次 科二 大數據處理分析與應用
某AI平台的資料工程師需要在Apache Spark叢集上,對包含10億筆使用者行為紀錄的RDD/DataFrame計算整體標準差(Standard Deviation)。請問下列哪種策略在分散式環境中最正確且有效率?
- A呼叫collect()將所有資料傳回Driver節點的本機記憶體後,再使用Python的statistics.stdev()計算
collect() 把十億筆拉回 Driver 本機,記憶體必爆,等於放棄分散式。
- B先對資料進行全域排序(sortBy),再取中間值計算變異數
全域排序(sortBy)成本極高,且中位數本來就推不出變異數。
- C將資料輸出為CSV,再以Excel的STDEV函數計算
匯出 CSV 再用 Excel 完全不具擴充性,十億筆開不了。
- D使用DataFrame.agg({'col': 'stddev'})或RDD.aggregate()等分散式統計方法,由各Executor計算局部統計量後再進行彙總(正確答案)
各 Executor 算出筆數、總和、平方和,彙總即得標準差。
正確答案:D
這題考分散式運算中統計量的可結合彙總:先算局部、再合併全域。 遇到巨量資料的統計題,先判斷該統計量能否拆成局部彙總,能拆就交給叢集平行處理。
用刷8題準備 iPAS AI 應用規劃師中級
每天隨手刷 8 題,答錯的題目會自動排回來再考一次。不用註冊,打開就能開始。
開始刷題