sparklyr sdf_collect и функция сбора dplyr для больших таблиц в Spark запускаться долго? - PullRequest
0 голосов
/ 28 января 2019

Я использую R Studio и R 3.5.2.

Я загрузил около 250 parquet файлов, используя sparklyr::spark_read_parquet из S3a.

Мне нужно собрать данные из Spark(устанавливается sparklyr):

spark_install(version = "2.3.2", hadoop_version = "2.7")

Но по какой-то причине работа занимает много времени.Иногда задача распространяется на все процессоры, а иногда работает только один: enter image description here

Пожалуйста, посоветуйте, как бы вы решили dplyr::collect или sparklyr::sdf_collect проблему «возраста».

Пожалуйста, также поймите, что я не могу предоставить вам данные, и если они небольшие, они будут работать значительно быстрее.

1 Ответ

0 голосов
/ 28 января 2019

Это ожидаемое поведение.dplyr::collect, sparklyr::sdf_collect или родной Spark collect доставит все данные на узел драйвера.

Даже если это возможно (вам требуется как минимум в 2-3 раза больше памяти, чем фактический размер данных, в зависимости от сценария), это займет много времени - сетевые интерфейсы драйверов являются наиболее очевиднымиУзкое место.

На практике, если вы собираетесь собирать все данные, обычно имеет смысл пропустить издержки сети и платформы и загрузить данные непосредственно с помощью собственных инструментов (учитывая описание, это будет означать загрузку данных вдрайвер и конвертировать в R дружественный формат файла за файлом).

...