Скажем, есть список фреймов данных, который генерируется после вызова lapply
для некоторого вектора, и цель состоит в том, чтобы добавить список фреймов данных друг к другу, чтобы сформировать единый фрейм данных. В R один подход - do.call(rbind, data.ls)
, где data.ls
- это объект списка, составленный из списка кадров данных. Этот подход также работает с dplyr
bind_rows
точно таким же образом, но он НЕ работает с одноименным union_all
SQL, когда один связывает более двух фреймов данных. В большинстве случаев это нормально, но что делать при работе в среде базы данных, а данные слишком тяжелы, чтобы collect
до конца вызова lapply
(и есть более двух фреймов данных для добавления)? Это явление не уникально и для dbplyr
. Авторы пакета sparklyr
признали ограничения union_all
и реализовали глагол sparklyr
, который выполнил то, что rbind
/ bind_rows
делает в локальной среде - sdf_bind_rows
. Мне любопытно, есть ли аналогичный глагол dplyr
/ dbplyr
для достижения sh или какой-то другой подход, который может выполнить sh, который все еще опирается на результаты вызова lapply
- то есть список фреймов данных .
Из sparklyr
документации:
Описание
sdf_bind_rows () и sdf_bind_cols () являются реализацией общего шаблона do .call (rbind, sdfs) или do.call (cbind, sdfs) для связывания множества фреймов данных Spark в один.