>>> from pyspark.sql import Row, functions as F
>>> data = [
...     Row(y=1, m=2, w=3, d=4, h=5, mi=6, s=7.5),
...     Row(y=None, m=2, w=3, d=4, h=5, mi=6, s=7.5),
...     Row(y=1, m=None, w=3, d=4, h=5, mi=6, s=7.5),
...     Row(y=1, m=2, w=None, d=4, h=5, mi=6, s=7.5),
...     Row(y=1, m=2, w=3, d=None, h=5, mi=6, s=7.5),
...     Row(y=1, m=2, w=3, d=4, h=None, mi=6, s=7.5),
...     Row(y=1, m=2, w=3, d=4, h=5, mi=None, s=7.5),
...     Row(y=1, m=2, w=3, d=4, h=5, mi=6, s=None),
...     Row(y=1, m=1, w=1, d=1, h=1, mi=1, s=1.0),
...     # NaN and infinite
...     Row(y=0, m=0, w=0, d=0, h=0, mi=0, s=float('nan')),
...     Row(y=0, m=0, w=0, d=0, h=0, mi=0, s=float('inf')),
...     Row(y=0, m=0, w=0, d=0, h=0, mi=0, s=float('-inf')),
... ]
>>> df = spark.createDataFrame(data)
>>> df.withColumn(
...     "interval",
...     F.make_interval("y", "m", "w", "d", "h", "mi", "s")
... ).show(truncate=False)
+----+----+----+----+----+----+---------+------------------------------------------------------+
|y   |m   |w   |d   |h   |mi  |s        |interval                                              |
+----+----+----+----+----+----+---------+------------------------------------------------------+
|1   |2   |3   |4   |5   |6   |7.5      |1 years 2 months 25 days 5 hours 6 minutes 7.5 seconds|
|NULL|2   |3   |4   |5   |6   |7.5      |NULL                                                  |
|1   |NULL|3   |4   |5   |6   |7.5      |NULL                                                  |
|1   |2   |NULL|4   |5   |6   |7.5      |NULL                                                  |
|1   |2   |3   |NULL|5   |6   |7.5      |NULL                                                  |
|1   |2   |3   |4   |NULL|6   |7.5      |NULL                                                  |
|1   |2   |3   |4   |5   |NULL|7.5      |NULL                                                  |
|1   |2   |3   |4   |5   |6   |NULL     |NULL                                                  |
|1   |1   |1   |1   |1   |1   |1.0      |1 years 1 months 8 days 1 hours 1 minutes 1 seconds   |
|0   |0   |0   |0   |0   |0   |NaN      |NULL                                                  |
|0   |0   |0   |0   |0   |0   |Infinity |NULL                                                  |
|0   |0   |0   |0   |0   |0   |-Infinity|NULL                                                  |
+----+----+----+----+----+----+---------+------------------------------------------------------+
