pyspark.sql.functions.variant_strip_nulls#
- pyspark.sql.functions.variant_strip_nulls(v, include_arrays=True)[source]#
Recursively removes object fields and array elements whose value is a variant null, unless include_arrays is False, in which case null array elements are kept. Returns NULL if any argument is NULL.
Added in version 4.3.0.
- Parameters:
- v
Columnor str a variant column or column name
- include_arraysbool, optional
whether null elements are also removed from arrays (default True).
- v
- Returns:
Columna variant column with variant null fields/elements removed
Examples
>>> from pyspark.sql.functions import lit, parse_json, to_json, variant_strip_nulls >>> df = spark.createDataFrame([{ ... 'json': '''{ "a" : 1, "b" : null, "c" : [1, null], "d" : { "e" : null, "f" : 4 } }''' ... }]) >>> v = parse_json(df.json) >>> df.select(to_json(variant_strip_nulls(v)).alias("r")).collect() [Row(r='{"a":1,"c":[1],"d":{"f":4}}')] >>> df.select(to_json(variant_strip_nulls(v, False)).alias("r")).collect() [Row(r='{"a":1,"c":[1,null],"d":{"f":4}}')] >>> df.select(variant_strip_nulls(lit(None)).alias("r")).collect() [Row(r=None)] >>> df2 = spark.createDataFrame([{'json': '{"a": null}'}, {'json': 'null'}]) >>> v2 = parse_json(df2.json) >>> df2.select(to_json(variant_strip_nulls(v2)).alias("r")).collect() [Row(r='{}'), Row(r='null')]