Я пытаюсь проверить, могу ли я запустить пророк с помощью sparklyr для прогнозирования данных в кластере. Но когда я использую spark_apply, программа застревает.
Запуск sparklyr на edgenode, подключенном к клиенту yarn с помощью spark 2.2.0.
Данные о продажах по местоположениям за последние 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 stucked
spark_apply(df,sparkly_prophet)