我正在尝试测试是否可以使用 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)