Я пытаюсь реализовать редуктор для потоковой передачи Hadoop с использованием R. Однако мне нужно выяснить способ доступа к некоторым библиотекам, которые не построены в R, dplyr..etc. На основании моих исследований кажется, есть два подхода:R установить пакеты из Shell
(1) В коде редуктора, установить необходимые библиотеки во временную папку, и они будут захоронены, когда сессия будет сделано, как это:
.libPaths(c(.libPaths(), temp <- tempdir()))
install.packages("dplyr", lib=temp, repos='http://cran.us.r-project.org')
library(dplyr)
...
Однако этот подход будет иметь значительные накладные расходы в зависимости от того, сколько библиотек вы пытаетесь установить. Поэтому большая часть времени будет потрачена впустую на установку библиотек (сложные библиотеки, такие как dplyr, имеют множество зависимостей, которые потребуют минут для установки на сеансе ванили R).
Похоже, мне нужно установить его перед рукой, что заставляет нас приблизиться2.
(2) Мое кластер довольно большой. И я должен использовать какой-то инструмент вроде Ansible, чтобы он работал. Поэтому я предпочитаю иметь одну команду оболочки Linux для установки библиотеки. Я видел R CMD INSTALL...
раньше, однако он чувствует, что будет устанавливать пакеты только из исходного файла вместо того, чтобы делать install.packages()
в консоли R, вычислять зеркало, вытаскивать исходный файл, устанавливать его в одну команду.
Может ли кто-нибудь показать мне, как использовать одну командную строку в оболочке для неинтерактивной установки пакета R? (извините за это много фоновых знаний, если кто-то думает, что я даже не после правильного ФИЛОСОФИЯ, не стесняйтесь оставить в комментариях, как весь этот пакет кластера R должен управляться.)
Я не понимаю вашу точку - 'install.r' приходит с Литтлером, и мы, как правило, просто установить в' мягкую ссылку/USR/местные/bin'. Тогда это просто 'install.r drat'. И для чего это стоит, мы используем 'install.r' и' install2.r' (с поддержкой опций командной строки) много для рокера для этого. См., Например, [этот файл докеров] (https://github.com/rocker-org/hadleyverse/blob/master/Dockerfile). –