SmartQueryTools

Fill Empty Values in Parquet Files Online

Fill empty and null values in Parquet files with a custom replacement value, directly in your browser.

How to fill Empty Values in Parquet files

  1. Drop your file onto the upload area. The tool counts the NULL values in every column and lists each column that has any, marked as numeric, text, or another type that is left as is.
  2. Type the replacement for text columns in Fill text nulls with. It starts empty, which fills with an empty string.
  3. To fill number columns too, tick Also fill numeric nulls and set the Numeric fill value. The default is 0.
  4. Click Fill Empty Values and check the preview.
  5. Click Download to save the filled file in the same format you uploaded.

Your file is processed locally in your browser and is never uploaded. The free limit is 50 MB per file; larger files work if your device has the memory for them.

Worked example

A library exports its loan records for a monthly report. Missing renewal counts mean the loan was never renewed, and missing notes should read "none" rather than appearing blank.

Input (Parquet)

Parquet file (binary, columnar) — shown as a table with its schema

branchtitlerenewalsnotes
CentralThe Overstory2damaged cover
EastsidePiranesiNULLNULL
CentralKlara and the Sun0NULL
NorthgateNULL1reserved

Schema: branch VARCHAR, title VARCHAR, renewals BIGINT, notes VARCHAR

Settings

  • Fill text nulls with: none
  • Also fill numeric nulls: ticked
  • Numeric fill value: 0

Result

branchtitlerenewalsnotes
CentralThe Overstory2damaged cover
EastsidePiranesi0none
CentralKlara and the Sun0none
Northgatenone1reserved

Two notes and one renewal count were NULL, and they are now "none" and 0. The missing title is also "none": the text fill value applies to every text column that has NULLs, not only notes. Values that were already present, including the real 0 renewals for Klara and the Sun, are unchanged.

Working with Parquet files

Parquet keeps NULL and the empty string as different values, and only NULLs are counted and filled. A string column that holds "" is left alone. Filling text NULLs with the default empty string is meaningful here: it turns NULL into "", which some downstream systems handle better, for example those with NOT NULL constraints. Columns marked as required in the Parquet schema cannot hold NULL, so they never appear in the list.

Numeric fills keep the column numeric. A whole-number fill in an integer column keeps it an integer, but a fill such as 0.5 widens it to a decimal type. The text fill value only goes into string columns. DATE, TIMESTAMP, BOOLEAN, struct and list columns keep their NULLs, so a text placeholder never has to fit those types. The output keeps the file's other column types as they were. Filled values are ordinary values in the output, so later readers cannot tell which ones were originally missing.

Frequently Asked Questions

Are empty strings in a Parquet file filled?

No. Only true NULLs are counted and replaced. An empty string is a real value in Parquet. Use Find & Replace to change it.

Are NULLs in Parquet timestamp or boolean columns filled?

No. Only string and numeric columns are filled. Timestamp, date, boolean and nested columns keep their NULLs. Use the SQL Query tool with COALESCE to fill those with a value of the right type.

Are empty strings treated as missing?

No. Only NULL values are counted and filled. In CSV and Excel files, blank cells load as NULL, so they are filled. In Parquet and JSON, an empty string is a real value and is left alone.

Can I use a different fill value for each column?

No. There is one value for all text columns and one optional value for all numeric columns. Date, boolean and nested columns are not filled. For per-column values, use the SQL Query tool with COALESCE, or Coalesce Columns to fill from another column.

Are numeric columns filled by default?

No. Numeric NULLs stay NULL unless you tick Also fill numeric nulls. That is deliberate, because filling with 0 changes sums, averages and counts.

Related Tools