【发布时间】:2021-07-09 00:56:00
【问题描述】:
我正在寻找一种在不允许文件附加的文件系统上安装 R 包的方法(即 Databricks 文件系统/DBFS,可通过 FUSE 安装获得)。
默认情况下,install.packages() 似乎会对其下载的内容进行一些文件清理和文件附加。
R 是否提供了一种无需附加到文件即可安装包的方法?
到目前为止,我的经历是这样的:
foundpkgs: kernlab, /tmp/RtmprBtUFj/downloaded_packages/kernlab_0.9-29.tar.gz
files: /tmp/RtmprBtUFj/downloaded_packages/kernlab_0.9-29.tar.gz
* installing *source* package ‘kernlab’ ...
** package ‘kernlab’ successfully unpacked and MD5 sums checked
** using staged installation
** libs
g++ -std=gnu++11 -I"/usr/share/R/include" -DNDEBUG -fpic -g -O2 -fdebug-prefix-map=/build/r-base-EkOYxp/r-base-4.0.4=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -c brweight.cpp -o brweight.o
<...snip...>
g++ -std=gnu++11 -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o kernlab.so brweight.o ctable.o cweight.o dbreakpt.o dcauchy.o dgpnrm.o dgpstep.o dprecond.o dprsrch.o dspcg.o dtron.o dtrpcg.o dtrqsol.o esa.o expdecayweight.o inductionsort.o init.o kspectrumweight.o lcp.o misc.o msufsort.o solvebqp.o stringk.o stringkernel.o svm.o wkasailcp.o wmsufsort.o -llapack -lblas -lgfortran -lm -lquadmath -L/usr/lib/R/lib -lR
installing to /dbfs/<...snip...>/00LOCK-kernlab/00new/kernlab/libs
** R
Warning in .file_append_ensuring_LFs(outFile, codeFiles) :
write error during file append
<...snip...>
Warning in .file_append_ensuring_LFs(outFile, codeFiles) :
write error during file append
Error in .install_package_code_files(".", instdir) :
unable to write code files
ERROR: unable to collate and parse R files for package ‘kernlab’
* removing ‘/dbfs/<...snip...>/kernlab’
The downloaded source packages are in
‘/tmp/RtmprBtUFj/downloaded_packages’
【问题讨论】:
-
DBFS 通常用于存储数据对象,而不是您的可执行文件。你为什么要在那里存储你的 R 包?
-
我同意在那里安装可能不是最好的,但是 ...stackoverflow.com/a/59814948/3358272 是一个答案,它在不同的文件系统上进行编译/安装,然后将其复制到这个 DBFS 挂载上。跨度>
-
@crestor 因为否则 R 环境,包括用户安装的包,会在集群重启时被 Databricks 清除。很难在这种 DevEx 上向我们的内部数据科学用户推销。
-
对@r2evans 的回复相同:我对 DevEx 很满意,但我的数据科学家用户不会。
-
所以你是在告诉我在这个系统上 R 没有其他可用的文件系统?
tmpfs怎么样?我怀疑您的数据科学家用户对于无法安装某些软件包根本会不太满意。如果你可以使用/tmp/或类似的,那么你很高兴,否则我认为这个 DBFS 解决方案要么是临时的,要么是一个显示停止器。
标签: r databricks fuse