Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEAT] Explore AnyDataframe (spark, ray, and dask) integration #196

Open
AzulGarza opened this issue Jun 2, 2023 · 3 comments
Open

[FEAT] Explore AnyDataframe (spark, ray, and dask) integration #196

AzulGarza opened this issue Jun 2, 2023 · 3 comments

Comments

@AzulGarza
Copy link
Member

Currently, hierarchicalforecast only supports a pandas dataframe as input. For the library to scale horizontally, we need to explore different alternatives on how to integrate frameworks such as spark, ray, and dask. This issue is intended to discuss possible approaches.

The main problem right now is that hierarchicalforecast takes a dataframe and then converts it to numpy arrays that are fed to the reconciliation methods. Because of the characteristic of the hierarchical reconciliation problem, those numpy arrays must be used at once in each reconciliation method.

Any ideas?

@AzulGarza
Copy link
Member Author

@kvnkho

@elephaint
Copy link
Contributor

My thoughts:

  • Methods that don't require complex linear algebra (basically the simple ones) could be rewritten in DataFrame-only operations, which would allow to abstract away from Numpy and allow horizontal scaling.
  • [FEAT] Add polars support #305 enables (implicit) support for a.o. Dask via Modin, but as long as we keep the numpy stuff we'd still rely on having a single machine executing the linear algebra at some point.
  • A proper solution for the complex stuff woul be some form of batch-wise reconciliation strategies, similar to neural network training. I'd have to explore, though.

@jmoralez
Copy link
Member

Dask has arrays, so we could try supporting dask dataframes, converting to arrays and using that API.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants