R распаковать против system2 - PullRequest
       12

R распаковать против system2

0 голосов
/ 28 декабря 2018

У меня есть блок кода (называемый кленом), который распаковывает сотни файлов, а затем загружает каждый файл в каждую собственную таблицу или семейство файлов в таблицу.Один файл превысил 4 ГБ, поэтому я больше не могу использовать R unzip.Это то, что я сделал, но выполнение сценария теперь занимает в 5 раз больше времени, что не вариант.Код является частью функции, которая вызывается через «apply».Сценарий также выполняется в нескольких узлах

Я считаю, что проблема в том, что system2 - unzip работает синхронно.Если я удалю стандартный вывод, он должен работать асинхронно, верно?Но тогда он не сможет загрузить файл, поскольку он не будет разархивирован.

if (file < than 4GB) {
    unzip(zip_file, file_name, exdir=down_dir)
} else
    system2("unzip", args = c("-o", zip_file, file_name, paste0("-d ",     down_dir)), stdout = TRUE, stderr = TRUE))
}

... code to load file into a table

Ожидается: что синхронный поток будет применяться только к этому условию, а остальные файлы будут обрабатываться асинхронно.На самом деле: Если затронуто обработка сотен файлов, которые распаковываются через R unzip

...