【问题标题】:Starting Rserve in debug mode and printing variables from Tableau to R以调试模式启动 Rserve 并将变量从 Tableau 打印到 R
【发布时间】:2015-02-27 09:11:08
【问题描述】:

我无法在调试模式下启动 Rserve。 我在 R 中编写了这些命令:

library(Rserve)
Rserve(debug=T, args="RS-enable-control", quote=T, port = 6311)
library(RSclient)
c=RSconnect(host = "localhost", port = 6311)
RSeval(c, "xx<-12")
RSeval(c, "2+6")
RSeval(c, "xx")
RSclose(c)
install.packages("fpc")

我将 Rserve_d.exe 放在了 R.dll 文件所在的同一目录中。但是当我启动它并使用 Rserve 连接启动 Tableau 时,我在调试控制台中看不到任何内容,只有这几行。

Rserve 1.7-3 () (C)Copyright 2002-2013 Simon Urbanek
$Id$
Loading config file Rserv.cfg
Failed to find config file Rserv.cfg
Rserve: Ok, ready to answer queries.
-create_server(port = 6311, socket = <NULL>, mode = 0, flags = 0x4000)
INFO: adding server 000000000030AEE0 (total 1 servers)

我在 R 中通过命令 Rserve(TRUE) 尝试了另一种解决方案,但在 Rstudio 控制台中也看不到 R 和 Tableau 之间的事务。

然后我想通过 print(.arg1) 从 R 脚本函数打印 R 中变量的输出。但是 R 控制台中什么也没有出现 但是当我在 R 控制台中运行 print 时,它工作正常。

【问题讨论】:

    标签: r tableau-api rserve


    【解决方案1】:

    根据这个article*,应该使用以下命令运行RServe以启用调试:

    R CMD Rserve_d
    

    另一种方法是在调用 R 脚本的计算字段中使用“write.csv”命令,如 this FAQ document from Tableau 建议的那样

    【讨论】:

      【解决方案2】:

      从命令行启动 Rserve_d.exe 有效。您很可能有多个 Rserve 实例正在运行,并且 Tableau 正在向一个不在命令行中运行的 Rserve_d 的实例发送请求。

      您是否尝试杀死所有 Rserve 进程,然后从命令行启动 Rserve_d?

      如果您不想从命令行运行,您可以尝试从 RStudio 启动 Rserve,方法是键入 run.Rserve(),然后在 Tableau 计算字段中使用 print() 语句来处理您想要打印的内容。

      【讨论】:

        【解决方案3】:

        在 R bin 目录中,您有两个可执行文件 Rserve 用于正常执行,Rserve.dbg 用于调试执行。使用

        R CMD Rserve.dbg
        

        我的操作系统是 CENTOS7,我正在使用 anaconda 的 R 安装。如果您的 RServe 调试可执行文件具有不同的名称,您应该使用它。

        【讨论】:

          猜你喜欢
          • 2012-09-06
          • 1970-01-01
          • 2018-03-31
          • 2019-04-24
          • 1970-01-01
          • 2011-07-24
          • 1970-01-01
          • 2011-01-04
          • 2019-07-01
          相关资源
          最近更新 更多