I'm not opposed to installing headers that provide access to some of
the kernel implementation internals (with the caveat that changes
won't go through a deprecation cycle, so caveat emptor). It might be
more sustainable to think about what kind of stable-ish public API
could be exported to support applications like Cylon.

On Sun, Nov 8, 2020 at 10:37 AM Ben Kietzman <b...@ursacomputing.com> wrote:
>
> Hi Niranda,
>
> SumImpl is a subclass of KernelState. Given a SumAggregateKernel, one can
> produce zeroed KernelState using the `init` member, then operate on data
> using the `consume`, `merge`, and `finalize` members. You can look at
> ScalarAggExecutor for an example of how to get from a compute function to
> kernels and kernel state. Will that work for you?
>
> Ben Kietzman
>
> On Sun, Nov 8, 2020, 11:21 Niranda Perera <niranda.per...@gmail.com> wrote:
>
> > Hi Ben,
> >
> > We are building a distributed table abstraction on top of Arrow dataframes
> > called Cylon (https://github.com/cylondata/cylon). Currently we have a
> > simple aggregation and group-by operation implementation. But we felt like
> > we can give more functionality if we can import arrow kernels and states to
> > corresponding cylon distributed kernels.
> > Ex: For distributed mean, we would have to communicate the local arrow
> > SumState and then do a SumImpl::MergeFrom() and the call Finalize.
> > Is there any other way to access these intermediate states from compute
> > operations?
> >
> > On Sun, Nov 8, 2020 at 11:11 AM Ben Kietzman <b...@ursacomputing.com>
> > wrote:
> >
> > > Ni Niranda,
> > >
> > > What is the context of your work? if you're working inside the arrow
> > > repository you shouldn't need to install headers before using them, and
> > we
> > > welcome PRs for new kernels. Otherwise, could you provide some details
> > > about how your work is using Arrow as a dependency?
> > >
> > > Ben Kietzman
> > >
> > > On Sun, Nov 8, 2020, 10:57 Niranda Perera <niranda.per...@gmail.com>
> > > wrote:
> > >
> > > > Hi,
> > > >
> > > > I was wondering if I could use the arrow/compute/kernels/*internal.h
> > > > headers in my work? I would like to reuse some of the kernel
> > > > implementations and kernel states.
> > > >
> > > > With -DARROW_COMPUTE=ON, those headers are not added into the include
> > > dir.
> > > > I see that the *internal.h headers are skipped from
> > > > the ARROW_INSTALL_ALL_HEADERS cmake function unfortunately.
> > > >
> > > > Best
> > > > --
> > > > Niranda Perera
> > > > @n1r44 <https://twitter.com/N1R44>
> > > > +1 812 558 8884 / +94 71 554 8430
> > > > https://www.linkedin.com/in/niranda
> > > >
> > >
> >
> >
> > --
> > Niranda Perera
> > @n1r44 <https://twitter.com/N1R44>
> > +1 812 558 8884 / +94 71 554 8430
> > https://www.linkedin.com/in/niranda
> >

Reply via email to