-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
Support translations of simple data.table functions #45098
Comments
Yup, at a high level this is what's going on. You might have already found these, but here are some pointers around arrow/r/R/dplyr-funcs-conditional.R Lines 136 to 146 in 352b710
fcase() don't need the tidy evaluation semantics for selecting columns, the binding might be as simple as just using a similar Expression$create() on the expressions themselves (there's probably a bit more to that, but much of the complication with the dplyr bindings is getting the tidy evaluation working).
The test for All of that said, because we are looking through the AST to find bindings, if Something like the following should work:
You could build up the acero with |
Describe the bug, including details regarding any error messages, version, and platform.
Related: #39822.
Context: MichaelChirico/funchir#18
Goal:
acero
engine translates some {data.table} functions into {arrow} executions.#39822 is much more ambitious since it requires implementing translation for the most complex part of the {data.table} API, namely
[
.This request should be much simpler to satisfy -- at a minimum, translate
fcase()
, but we should also be able to dofifelse()
andfcoalesce()
. These have {dplyr} equivalentscase_when()
,if_else()
, andcoalesce()
, respectively.My assumption here is that acero works by static analysis -- read the AST, apply known translations, i.e. analogous to {dbplyr}. If there's something deeper going on then this is just a duplicate of #39822.
I can help prepare a PR but don't really have a machine suitable for that available until next year. Filing this issue first as a sanity check & to gauge interest.
Component(s)
R
The text was updated successfully, but these errors were encountered: