You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@arrow.apache.org by GitBox <gi...@apache.org> on 2022/11/15 13:45:27 UTC

[GitHub] [arrow] ldacey commented on pull request #14641: ARROW-15716: [Dataset][Python] Parse a list of fragment paths to gather filters

ldacey commented on PR #14641:
URL: https://github.com/apache/arrow/pull/14641#issuecomment-1315331226

   This works for me, I can run the functools reduce (that simplifies what I have).
   
   Some things I want to make sure:
   
   ```
   paths = [
        'path/to/data/month_id=202105/part-0.parquet',
        'path/to/data/month_id=202106/part-0.parquet',
        'path/to/data/month_id=202107/part-0.parquet',
        'path/to/data/month_id=202107/part-1.parquet',
        'path/to/data/month_id=202107/part-2.parquet',
   ]
   reduce(operator.or_, [partitioning.parse(file) for file in paths])
   
   <pyarrow.compute.Expression (((((month_id == 202105) or (month_id == 202106)) or 
   (month_id == 202107)) or (month_id == 202107)) or (month_id == 202107))>
   ```
   
   
   1. Do I need to worry about there being multiple filters for 202107 in that expression? In my example, there are 3 fragments in that partition.
   2. There is no benefit in using `.isin()` for a single partition compared to `or`, right? In terms of performance/efficiency they are the same?
   
   ```
   <pyarrow.compute.Expression is_in(month_id, {value_set=int64:[
     202105,
     202106,
     202107
   ], skip_nulls=false})>
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org