首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >芹菜在pyRserve中的并行编程

芹菜在pyRserve中的并行编程
EN

Stack Overflow用户
提问于 2015-12-18 05:23:48
回答 1查看 491关注 0票数 3

我有一个由时间序列组成的数据框架。

日期索引_

我使用pyRserve运行了一个预测函数,使用R.

我想用芹菜实现并行处理。我在下面的上下文中编写了工作代码。

代码语言:javascript
复制
def pipeR(k #input variable):
    conn = pyRserve.connect(host = 'localhost', port = 6311)
    # OPENING THE CONNECTION TO R

    conn.r.i = k
    # ASSIGNING THE PYTHON VARIABLE TO THAT OF IN THE R ENVIRONMENT

    conn.voideval\('''
    WKR_Func <- forecst(a)
    {
    ...# FORECASTS THE TIMESERIES IN COLUMN a OF THE DATAFRAME
    }
    ''')

    conn.eval('forecst(i)')
    # CALLING THE FUNCTION IN R

group(pipeR.s(k) for k in [...list of column headers...])()

要实现并行处理,我可以为所有工作进程拥有一个端口(就像我在上面的代码,端口:6311中所做的那样),还是应该为不同的工作进程拥有不同的端口?

我现在收到了一个错误

socketConnection中的错误(“localhost”、port=port、server=TRUE、blocking=TRUE ):无法打开连接

在R.

EN

回答 1

Stack Overflow用户

发布于 2015-12-24 05:14:23

当我为每个工作进程打开不同的端口时,问题就解决了.

代码语言:javascript
复制
def pipeR( k, Frequency, Horizon, Split, wd_path):
    # GENERATING A RANDOM PORT
    port = randint(1000,9999)

    # OPENING THE PORT IN THE R ENVIRONMENT
    conn0 = pyRserve.connect(host = 'localhost', port = 6311)
    conn0.r.port = port
    conn0.voidEval\
    ('''
        library(Rserve)
        Rserve(port = port, args = '--no-save')
     ''')

    # OPENING THE PORT IN THE PYTHON ENVIRONMENT
    conn = pyRserve.connect(host = 'localhost', port = port)

    # ASSIGNING THE PYTHON VARIABLE TO THAT OF IN THE R ENVIRONMENT
    conn.r.i = k

    conn.voideval\
    ('''
     WKR_Func <- forecst(a)
     {
     ...# FORECASTS THE TIMESERIES IN COLUMN a OF THE DATAFRAME
     }
     ''')

    conn.eval/('forecst(i)')
    conn0.close()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34349014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档