1
チャンクでCSVファイルを読み込むにはどうすればいいですか(そのサイズは一度に読むには大きすぎます)parallel
パッケージを使用してすべてのチャンクを処理しますか?私は、チャンクによる列の平均を計算したいとしましょう。R - チャンクによるcsvを並列に処理する
parallel
がなければ、私はこのようなものを使用します。
library(readr)
f <- function(df_chunk, pos) mean(df_chunk$'mpg')
res <- read_csv_chunked(readr_example("mtcars.csv"), DataFrameCallback$new(f), chunk_size=10)
結果は次のとおりです。
> res
[,1]
[1,] 20.37
[2,] 19.89
[3,] 20.39
[4,] 18.20
は、だから私は、これらの4つの平均値は子プロセスで計算することにしたいです。
library(foreach)
library(doParallel)
registerDoParallel(6)
calc_avg <- function (iterable_df_chunks) {
foreach(df_chunk = iterable_df_chunks, .combine = c) %dopar%
mean(df_chunk$'mpg')
}
calc_avg(< some code with read_csv_chunked() >)
stopImplicitCluster()
はありがとう:これを達成するためのいくつかのコードは次のようなものかもしれません!