iPAS AI 應用規劃師中級 115 年第一次 科二 第 21 題 詳解

115 年第一次 科二 大數據處理分析與應用

某AI平台的資料工程師需要在Apache Spark叢集上,對包含10億筆使用者行為紀錄的RDD/DataFrame計算整體標準差(Standard Deviation)。請問下列哪種策略在分散式環境中最正確且有效率?

  1. A呼叫collect()將所有資料傳回Driver節點的本機記憶體後,再使用Python的statistics.stdev()計算

    collect() 把十億筆拉回 Driver 本機,記憶體必爆,等於放棄分散式。

  2. B先對資料進行全域排序(sortBy),再取中間值計算變異數

    全域排序(sortBy)成本極高,且中位數本來就推不出變異數。

  3. C將資料輸出為CSV,再以Excel的STDEV函數計算

    匯出 CSV 再用 Excel 完全不具擴充性,十億筆開不了。

  4. D使用DataFrame.agg({'col': 'stddev'})或RDD.aggregate()等分散式統計方法,由各Executor計算局部統計量後再進行彙總(正確答案)

    各 Executor 算出筆數、總和、平方和,彙總即得標準差。

正確答案:D

這題考分散式運算中統計量的可結合彙總:先算局部、再合併全域。 遇到巨量資料的統計題,先判斷該統計量能否拆成局部彙總,能拆就交給叢集平行處理。

用刷8題準備 iPAS AI 應用規劃師中級

每天隨手刷 8 題,答錯的題目會自動排回來再考一次。不用註冊,打開就能開始。

開始刷題