You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "Ben Kietzman (Jira)" <ji...@apache.org> on 2021/07/30 19:17:00 UTC

[jira] [Commented] (ARROW-13498) [C++] ScanNode takes filter but doesn't filter

    [ https://issues.apache.org/jira/browse/ARROW-13498?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17390754#comment-17390754 ] 

Ben Kietzman commented on ARROW-13498:
--------------------------------------

This is as-designed: the ScanNode only uses the filter for predicate pushdown- so in the context of datasets, you would exclude some files whose partition expression contradicted the filter. It does not remove all rows excluded by the filter- that is deferred to FilterNode.

Similarly, ScanNode does not perform projection- it ensures that fields referenced by the projection are loaded from disk (which for example in the case of parquet means you will pay less IO if you reference fewer fields).

> [C++] ScanNode takes filter but doesn't filter
> ----------------------------------------------
>
>                 Key: ARROW-13498
>                 URL: https://issues.apache.org/jira/browse/ARROW-13498
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: C++
>            Reporter: Neal Richardson
>            Priority: Major
>             Fix For: 6.0.0
>
>
> This turned out to be my confusion in ARROW-13344: because the ScanNode takes a filter and projection, I wasn't creating a FilterNode because I assume that the filter is already applied--why else would I provide a filter to the ScanNode? But it turns out that if you don't Filter again, you get unfiltered results:
> {code}
> Table$create(
>   group=c(1, 2), 
>   value=c(5, 6)
> ) %>% 
>   filter(value > 5) %>% 
>   group_by(group) %>% 
>   summarize(sum(value)) %>% 
>   collect()
> # A tibble: 2 x 2
>   group `sum(value)`
>   <dbl>        <dbl>
> 1     1            5
> 2     2            6
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)