Uh oh!
There was an error while loading. Please reload this page.
PARQUET-2373: Improve I/O performance with bloom_filter_length - #1184
Conversation
wgtmac
left a comment
There was a problem hiding this comment.
Thanks for the change! I have left some comments.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
wgtmac
commented
Nov 24, 2023
@zhangjiashen This can be rebased to adopt parquet-format 2.10.0 |
78e7941 to
9f2738fComparezhangjiashen
commented
Nov 27, 2023
@wgtmac I just rebased with master branch and please help take a look when you get a chance? |
mapleFU
commented
Nov 27, 2023
FYI, I've update a BloomFilter with length for testing: apache/parquet-testing#43 |
wgtmac
commented
Dec 5, 2023
@zhangjiashen This needs to be rebased again. |
9f2738f to
83a9777CompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
c36e236 to
2b1f135Compare@zhangjiashen@wgtmac There is a data issue after this improvement. The result is empty after this patch. My query is: CREATE TEMPORARY VIEW parquetTable
USING org.apache.spark.sql.parquet
OPTIONS (
path"viewfs://cluster/path/to/file/00000-62-eff62af9-bea8-4eb6-b9c9-c3ee29fd795e-0-00001.parquet"
);
SELECT*FROM parquetTable
WHERE JNL_DEDUP_ID ='PG.PG_CHARGE_ID.25030465176'AND ACCT_ID =4920012120302AND SEQ_NUM =734343586;We build bloom filter on the column of |
wgtmac
commented
Jul 11, 2025
Did you mean filtering on bloom filter returns wrong result? It worked on older versions? Is there any way to reproduce it? |
wangyum
commented
Jul 11, 2025
Yes, the results are broken for Parquet 1.14+, but work fine on older versions (Parquet 1.13). I also make a PR to fix this issue: #3250. Please help to review it. |
The spec PARQUET-2257 has added bloom_filter_length for reader to load the bloom filter in a single shot. This implementation alters the code to make use of the 'bloom_filter_length' field for loading the bloom filter (consisting of the header and bitset) in order to enhance I/O scheduling.
Jira
Tests
Commits
Documentation