fillnull

Description

Replaces null values with a specified value. Null values are field values that are missing in a particular result but present in another result. Use the fillnull command to replace null field values with a string. You can replace the null values in one or more fields. You can specify a string to fill the null field values or use the default, field value which is zero ( 0 ). ​

Syntax

The required syntax is in bold. ​

fillnull

[value=<string>]

[<field-list>]

Required arguments

None. ​

Optional arguments

field-list

Syntax: <field>...

Description: A space-delimited list of one or more fields. If you specify a field list, all of the fields in that list are filled in with the value you specify. If you specify a field that didn't previously exist, the field is created. If you do not specify a field list, the value is applied to all fields.

value

Syntax: value=<string>

Description: Specify a string value to replace null values. If you do not specify a value, the default value is applied to the <field-list>.

Default: 0

Usage

The fillnull command is a distributable streaming command when a field-list is specified. When no field-list is specified, the fillnull command fits into the dataset processing type. See Command types.

Fields in the event set should have at least one non-null value

Due to the unique behavior of the fillnull command, Splunk software isn't able to distinguish between a null field value and a null field that doesn't exist in the Splunk schema. In order for a field to exist in the schema, it must have at least one non-null value in the event set. To ensure downstream processing of fields by the fillnull command, ensure that there is at least one non-null value for the fields in the event set.

For example, consider the following search:

The results look something like this:

Notice that the test2 field doesn't show up in the results, even though the eval command created it. The reason the test2 field isn't in the results is that there isn't at least one non-null value for the field in the event set.

If a field doesn't have at least one non-null value in the event set, it's considered a nonexistent field, so downstream commands like the fillnull command can't process it. For example, consider the following search:

The results look something like this:

The search results display the test2 field, but not the intended NULL value. This is because the upstream eval command initially set test2 to null, so the field doesn't exist in the schema.

Now consider the following search:

The results look something like this:

This search generates at least one non-null value for each field and shows the expected behavior by setting the null value of the test2 field to the NULL string. Now all the values display as expected because the test2 field has at least one non-null value.

Examples

1. Fill all empty field values with the default value

​Your search has produced the following search results: ​

​ You can fill all of empty field values with the zero by adding the fillnull command to your search. ​

​ The search results will look like this: ​

2. Fill all empty fields with the string "NULL"

For the current search results, fill all empty field values with the string "NULL".

3. Fill the specified fields with the string "unknown"

​Suppose that your search has produced the following search results: ​

​ You can fill all empty field values in the "host" and "kbps" fields with the string "unknown" by adding the fillnull command to your search. ​

​ ​The results look like this:

​ ​If you specify a field that does not exist the field is created and the value you specify is added to the new field. ​ For example if you specify bytes in the field list, the bytes field is created and filled with the string "unknown". ​

​ ​The results look like this:

4. Use the fillnull command with the timechart command

Build a time series chart of web events by host and fill all empty fields with the string "NULL".