对 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
)