【问题标题】:Rscript error 400脚本错误 400
【发布时间】: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.你在使用elastic pkg 吗?不确定这是否是 elastic 的问题,但如果是,请告诉我

标签: r elasticsearch rscript


【解决方案1】:

最后我使用 elastic::docs_bulk 函数而不是 elastic::docs_create 解决了这个问题。它似乎在处理大量弹性文档时效果更好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-08
    • 1970-01-01
    • 2022-06-24
    相关资源
    最近更新 更多