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