【发布时间】:2018-05-07 04:51:45
【问题描述】:
我有一个 R 脚本 (script.R),它在每次执行时在 elasticsearch 中加载 25-30K 文档。
关键是我可以在 Rstudio 中正确执行它。但是,当我尝试使用 Rscript 从命令行执行它时,我总是会遇到同样的错误:
Error: 400 - failed to parse
In addition: There were 50 or more warnings (use warnings() to see the first 50)
Execution halted
最奇怪的是,当这个错误发生时,弹性文件中加载了不同数量的文件(有时是 1.5K,有时是 3K,等等)。所以它似乎并不总是同时发生。
你知道发生了什么吗?这是 Rscript 执行:
/usr/bin/Rscript /Rdir/script.R
谢谢!
【问题讨论】:
-
是否在同一个系统上执行?当您在 RStudio 中执行 cmdline 时,环境变量是否相同?它是从同一个帐户执行的吗?您是否在 cmdline 上的不同目录中,是否有本地项目/文件夹
.Rprofile/.Renviron文件覆盖假设?了解您的系统有哪些基本调试系统和更多详细信息会很有帮助,因为这是一个计算环境问题,而不是真正的 R 编程问题,因此很可能会被关闭。 -
你说得对,我在不同系统的 RStudio 中执行。但是,环境变量是相同的,并且执行是在同一个项目中完成的,没有覆盖 .Rprofile/.Renviron 文件。
-
不可能。您没有考虑到系统/环境差异。如果不是 R 环境或配置文件,那么内存限制、不同位置的不同 API 密钥或其他东西。或者,也许,甚至是不同的 R & R 包版本。您应该在两个系统上转储 sessionInfo() 以及输出 Sys.getenv() 并进行详细比较。看看有什么不同(在脚本上下文和一般情况下)
-
试试github.com/hrbrmstr/triage。我把它放在一起是为了更容易转储几乎所有使 R 会话独一无二的东西(不从全局环境中转储对象,只是元数据)。
-
@DanielM.M.你在使用
elasticpkg 吗?不确定这是否是elastic的问题,但如果是,请告诉我
标签: r elasticsearch rscript