DataFrameNaFunctions.fill(value: Union[LiteralType, Dict[str, LiteralType]], subset: Optional[List[str]] = None) → pyspark.sql.dataframe.DataFrame[source]

Replace null values, alias for na.fill(). DataFrame.fillna() and DataFrameNaFunctions.fill() are aliases of each other.

New in version 1.3.1.

Changed in version 3.4.0: Supports Spark Connect.

valueint, float, string, bool or dict

Value to replace null values with. If the value is a dict, then subset is ignored and value must be a mapping from column name (string) to replacement value. The replacement value must be an int, float, boolean, or string.

subsetstr, tuple or list, optional

optional list of column names to consider. Columns specified in subset that do not have matching data types are ignored. For example, if value is a string, and subset contains a non-string column, then the non-string column is simply ignored.


DataFrame with replaced null values.


>>> df = spark.createDataFrame([
...     (10, 80.5, "Alice", None),
...     (5, None, "Bob", None),
...     (None, None, "Tom", None),
...     (None, None, None, True)],
...     schema=["age", "height", "name", "bool"])

Fill all null values with 50 for numeric columns.

|age|height| name|bool|
| 10|  80.5|Alice|NULL|
|  5|  50.0|  Bob|NULL|
| 50|  50.0|  Tom|NULL|
| 50|  50.0| NULL|true|

Fill all null values with False for boolean columns.

| age|height| name| bool|
|  10|  80.5|Alice|false|
|   5|  NULL|  Bob|false|
|NULL|  NULL|  Tom|false|
|NULL|  NULL| NULL| true|

Fill all null values with to 50 and “unknown” for ‘age’ and ‘name’ column respectively.

>>>{'age': 50, 'name': 'unknown'}).show()
|age|height|   name|bool|
| 10|  80.5|  Alice|NULL|
|  5|  NULL|    Bob|NULL|
| 50|  NULL|    Tom|NULL|
| 50|  NULL|unknown|true|