# Parquet Bloom Filter ZoneMap Dictionary and Column Statistics Pruner Evaluator

Decode a Parquet thrift footer and quantify predicate-pushdown pruning: zone-map min/max, split-block bloom filters (XXH64), dictionary ratios and encodings, with per-row-group prune-savings estimates for example WHERE clauses.

> Canonical page: https://elysiatools.com/en/tools/parquet-bloom-filter-zonemap-dictionary-and-column-statistics-pruner-evaluator

- **Category:** Data Analysis

- **Keywords:** parquet pruning, bloom filter parquet, zone map, predicate pushdown, row group skip, dictionary encoding ratio, parquet statistics, thrift footer parser

## Overview

A hand-rolled thrift compact protocol reader decodes the footer and walks every page header; statistics decode into real zone maps; bloom membership runs the actual XXH64 + SBBF arithmetic; predicates (=, !=, <, <=, >, >=, BETWEEN, IN) are scored per row group as pruned-by-zone-map, pruned-by-bloom or scan with byte costs from total_compressed_size.

## Inputs

- **Parquet file** (file): Upload a .parquet file
- **WHERE clauses (one per line)** (textarea): id = 75 id > 60 name = 'zeta' Supports =, !=, <, <=, >, >=, BETWEEN a AND b, IN (x, y)

## When to use

- When evaluating whether split-block Bloom filters or column min/max statistics are effectively pruning row groups on targeted queries.
- When debugging query performance and scan bottlenecks across Parquet files written by engines like Arrow, DuckDB, or Spark.
- When verifying dictionary encoding ratios and page-level column statistics before deploying analytical datasets to object storage.

## How it works

- Upload a Parquet file to decode the Thrift compact protocol footer and parse column metadata across all row groups and page headers.
- Enter optional WHERE clauses with operators like =, !=, <, <=, >, >=, BETWEEN, or IN to test predicate pushdown rules.
- The engine performs XXH64 hashing and Split-Block Bloom Filter arithmetic against decoded zone maps and dictionary tables.
- Inspect the generated HTML report displaying per-row-group scan decisions, pruning causes, dictionary ratios, and byte savings based on total compressed size.

## Use cases

- Optimizing data lake layouts by measuring the pruning efficacy of sorting keys against column statistics and zone maps.
- Auditing newly generated Parquet datasets to ensure Split-Block Bloom filters are properly serialized and non-empty.
- Estimating network and I/O byte reduction when applying selective WHERE clauses against partition files in cloud storage.

## Frequently asked questions

### Which SQL predicate operators are supported?

The evaluator supports =, !=, <, <=, >, >=, BETWEEN a AND b, and IN (x, y) predicates formatted as one clause per line.

### How does the tool evaluate Split-Block Bloom Filters?

It extracts raw SBBF byte blocks from the footer/pages, hashes predicate literals using XXH64, and tests bit set membership directly.

### What determines whether a row group is pruned or scanned?

A row group is pruned if the predicate falls outside min/max zone maps or fails the Bloom filter test; otherwise, it is marked for scan.

### What is the maximum supported file upload size?

The tool accepts Parquet files up to 100 MB (104,857,600 bytes).

### How are byte savings calculated for skipped row groups?

Byte savings are calculated by summing the total_compressed_size metadata values of row groups that are fully pruned by filters or zone maps.

## Related tools

- [Social Media Template Resize Grid Composer](https://elysiatools.com/en/tools/social-media-template-resize-grid): One master image in, a full multi-platform asset kit out — every crop previewed with verified safe-zone overlays and shipped as a ZIP.
- [HDR AVIF to SDR PNG Tone Mapper](https://elysiatools.com/en/tools/hdr-avif-to-sdr-png): Decode PQ or HLG AVIF, convert BT.2020 to sRGB, and tone map highlights into a viewable SDR PNG.
- [Batch Image Compress](https://elysiatools.com/en/tools/batch-compress): Compress multiple images with quality control, output format selection, and size optimization
- [Data URI Generator](https://elysiatools.com/en/tools/data-uri-generator): Convert files into Data URIs (Base64 or percent-encoded) for inlining images, fonts, and assets directly into HTML, CSS, or Markdown
- [Batch Image Crop](https://elysiatools.com/en/tools/image-batch-crop): Batch crop multiple images to specific dimensions or aspect ratios with custom positioning. Returns cropped images as a ZIP download.
- [Correlation Analyzer](https://elysiatools.com/en/tools/correlation-analyzer): Advanced correlation analysis tool that calculates correlation coefficients between variables to measure the strength and direction of their linear relationships. Perfect for statistical analysis, financial modeling, scientific research, and data exploration. Features: - Multiple correlation methods (Pearson, Spearman, Kendall) - Correlation matrix generation - Statistical significance testing (p-values) - Confidence intervals calculation - Heatmap visualization - Scatter plot matrix generation - Missing value handling strategies - Outlier detection and handling - Group analysis capabilities - Detailed statistical reports Common Use Cases: - Financial market analysis and risk assessment - Scientific research and hypothesis testing - Customer behavior and marketing analysis - Healthcare and medical data analysis - Quality control and process optimization - Educational performance evaluation
- [Adaptive 12-Point Hidden Watermark](https://elysiatools.com/en/tools/adaptive-12-point-hidden-watermark): Add a subtle text watermark to one image or every supported image in a ZIP, at all, random, or chosen perimeter positions with automatic dark/light local contrast.
- [Convert AVIF to TIFF](https://elysiatools.com/en/tools/avif-to-tiff): Convert AVIF images to TIFF format with lossless quality, compression options, and professional workflows

## Samples

- [Parquet Pruning Samples](https://elysiatools.com/en/samples/parquet-pruning-samples): Parquet fixtures exercising the bloom filter, zone map and dictionary pruning evaluator
- [Android Image Processing Java Samples](https://elysiatools.com/en/samples/android-image-processing-java): Android Java image processing examples including reading/saving images, scaling, and format conversion
- [Android Image Processing Kotlin Samples](https://elysiatools.com/en/samples/android-image-processing-kotlin): Android Kotlin image processing examples including reading/saving images, scaling, and format conversion
- [Web Image Processing Python Samples](https://elysiatools.com/en/samples/web-image-processing-python): Web Python image processing examples using PIL/Pillow including reading, saving, resizing, and format conversion
