Sparklyr не может ссылаться на таблицу в spark_apply - PullRequest
0 голосов
/ 11 октября 2018

Я хочу использовать spark_apply, чтобы перебрать ряд процессов обработки данных для генерации объектов.Для этого мне нужно сослаться на таблицы, уже загруженные в spark, но получить следующую ошибку:

ОШИБКА sparklyr: RScript (3076) неожиданно завершил работу: объект 'ref_table' не найден

Воспроизводимый пример:

ref_table <-   sdf_along(sc, 10)
apply_table <- sdf_along(sc, 10)

spark_apply(x = apply_table, 
            f = function(x) {
              c(x, ref_table)
            })

Я знаю, что могу ссылаться на библиотеки внутри функции, но не знаю, как вызывать данные.Я запускаю локальный искровой кластер через rstudio.

1 Ответ

0 голосов
/ 11 октября 2018

К сожалению, здесь следует ожидать сбоя.

Apache Spark, и из-за того, что платформы на его основе не поддерживают вложенные преобразования, подобные этой.Вы не можете использовать вложенное преобразование, распределенные объекты или контекст Spark (spark_connection в случае sparklyr) из рабочего кода.

Для подробного объяснения, пожалуйста, проверьте мой ответ на Есть ли причина, по которой нетиспользовать SparkContext.getOrCreate при написании искрового задания? .

Ваш вопрос не дает достаточного контекста для определения наилучшего направления действий, но в целом есть два возможных решения:

  • Пока один из наборов данных достаточно мал для хранения в памяти, используйте его непосредственно в замыкании как простой объект R.
  • Переформулируйте свою проблему как join или декартовопродукт (Spark's crossJoin).
...