pyspark.sql.functions.try_mod#

pyspark.sql.functions.try_mod(left, right)[source]#

Returns the remainder after dividend/divisor. Its result is always null if divisor is 0.

New in version 4.0.0.

Parameters
leftColumn or column name

dividend

rightColumn or column name

divisor

Examples

Example 1: Integer divided by Integer.

>>> import pyspark.sql.functions as sf
>>> spark.createDataFrame(
...     [(6000, 15), (3, 2), (1234, 0)], ["a", "b"]
... ).select("*", sf.try_mod("a", "b")).show()
+----+---+-------------+
|   a|  b|try_mod(a, b)|
+----+---+-------------+
|6000| 15|            0|
|   3|  2|            1|
|1234|  0|         NULL|
+----+---+-------------+

Example 2: Exception during division, resulting in NULL when ANSI mode is on

>>> import pyspark.sql.functions as sf
>>> origin = spark.conf.get("spark.sql.ansi.enabled")
>>> spark.conf.set("spark.sql.ansi.enabled", "true")
>>> try:
...     spark.range(1).select(sf.try_mod("id", sf.lit(0))).show()
... finally:
...     spark.conf.set("spark.sql.ansi.enabled", origin)
+--------------+
|try_mod(id, 0)|
+--------------+
|          NULL|
+--------------+