開始使用免費開始

平行化呼叫 chunk.apply

chunk.apply() 函式也能運用平行程序來更快處理資料。當在 Linux 與 Unix 機器(包含 Mac)上將 CH.PARALLEL 參數設為大於 1 的值時,會同時啟動多個程序讀取並處理資料,從而縮短執行時間。在 Windows 上則會忽略 CH.PARALLEL 參數。

本練習屬於課程

R 的可擴展資料處理

檢視課程

練習說明

  • 針對 iotools_read_fun() 進行效能比較:先使用 1 個程序,接著使用 3 個平行程序。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

iotools_read_fun <- function(parallel) {
    fc <- file("mortgage-sample.csv", "rb")
    readLines(fc, n = 1)
    chunk.apply(fc, make_msa_table,
                CH.MAX.SIZE = 1e5, CH.PARALLEL = parallel)
    close(fc)
}

# Benchmark the new function
microbenchmark(
    # Use one process
    ___, 
    # Use three processes
    ___, 
    times = 20
)
編輯並執行程式碼