【问题标题】:OpenCPU serialisation in case of list output列表输出时的 OpenCPU 序列化
【发布时间】:2017-04-11 11:47:21
【问题描述】:

OpenCPU 开发人员, 我正在尝试使用 OpenCPU 运行自定义函数代码,并希望使用“列表”返回多个参数。类似的东西:

result = list(x=data.frame(a),y=data.frame(b)) 
return (result)

它运行良好,但 OpenCPU 打包结果就像一个变量 (R/.var),我只能像 JSON 一样在单独的视图中下载它。这种情况下的序列化是非常低效的:

{
    "x": [
    { "PC1": -0.0134, "PC2": -0.8164 }
    ,
    { "PC1": -0.2206, "PC2": -0.6093 }
    ,
    { "PC1": -1.0569, "PC2": -0.3061 }
    ],

    "y": [
    { "hp": 270, "qsec": 20.36 }
    ,
    { "hp": 270, "qsec": 20.92 }
    ,
    { "hp": 201, "qsec": 22.46 }
    ]
}

如果下载像 CSV OpenCPU 执行标量复制,并且无法连接具有不同行数的数据帧。

有什么方法可以分别下载 $x 和 $y 吗?还有更优化的序列化建议吗?

【问题讨论】:

    标签: r opencpu


    【解决方案1】:

    由于 R opencpu 服务器同时执行传入请求,您可以将函数拆分为两个函数,并同时触发这些函数,一个提供 $x,另一个提供 $y。

    关于速度和序列化的好问题....

    【讨论】:

    • 是的,拆分成多个函数是一种选择,但不幸的是不如简单打包成列表方便。
    猜你喜欢
    • 1970-01-01
    • 2020-07-19
    • 2017-05-10
    • 2013-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    相关资源
    最近更新 更多