[Python][Acero] Provide method to perform aggregations with acero for datasets
Describe the enhancement requested
Presently, Dataset has methods to perform several actions—sort_by, join, and join_asof—with Acero. It would be especially helpful to provide a method to perform aggregations on datasets using Acero for convenient out of core processing.
The implementation can be modeled off of the existing Dataset Acero operations as well as the aggregate method of TableGroupBy.
Component(s)
Python
Note that the implementation proposed in the above PR ends up being fairly inefficient because it can't fully leverage nodes for, e.g., projections and filtering. This functionality could be included—basically providing a dataframe-like interface to constructing an Acero plan as can be done with DataFusion—but that is substantially larger in scope