【问题标题】:Can facebook Prophet be applied to sparklyr via spark_applyfacebook Prophet 可以通过 spark_apply 应用于 sparklyr
【发布时间】:2019-05-08 18:05:51
【问题描述】:

我正在尝试测试是否可以使用 sparklyr 运行先知来预测集群中的数据。但是当我使用 spark_apply 时,程序卡住了。

在连接到带有 spark 2.2.0 的纱线客户端的边缘节点上运行 sparklyr。 数据是过去 4 年按地点划分的销售额。

计划是创建一个包含所有数据的数据框,并按位置对数据进行分区,然后在每个位置调用先知并获得未来 7 天的预测。

在这里,我尝试提取一个位置的数据并应用先知,但 sparklyr 卡住了。

library("sparklyr")
library("prophet")
sc <- spark_connect(master = "yarn-client",version = "2.2.0"))
query = "select * from saletable"
df <- sdf_sql(sc,query) %>%
         filter(locationid=="1111") %>% 
         select(date,sales) %>%
         sdf_repartition(partitions=1) %>%
         select(ds=date,y=sales)

## try to predict sales the next 7 days and get the predictions

sparkly_prophet <- function(df){
    m <- prophet::prophet(df)
    future <- prophet::make_future_dataframe(m,periods=7,freq='day')
    forecast <- predict(m,future)
    return (dplyr::select(forecast,yhat) %>% tail(7))
}

Then I run but it gets stuck

spark_apply(df,sparkly_prophet)

【问题讨论】:

    标签: sparklyr facebook-prophet


    【解决方案1】:

    当我使用spark_apply() 时,我取得了更好的成功,包括对spark_apply() 的调用中的函数定义。我不知道为什么会这样,但是将代码重组为

    可能是值得的
    spark_apply(
      df, 
      function(df) {
        m <- prophet::prophet(df)
        future <- prophet::make_future_dataframe(m, periods = 7, freq = "day")
        forecast <- predict(m, future)
        yhat <- dplyr::select(forecast, yhat) 
        return(tail(yhat, 7))
      }
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-21
      • 2019-03-16
      • 2018-03-30
      • 2018-11-17
      • 2018-05-24
      • 2018-04-20
      • 2019-03-23
      • 1970-01-01
      相关资源
      最近更新 更多