code: def nanvl(col1, col2):
      
      sc = SparkContext._active_spark_context
      return Column(sc._jvm.functions.nanvl(_to_java_column(col1), _to_java_column(col2)))
docs: Returns col1 if it is not NaN, or col2 if col1 is NaN.
  
      Both inputs should be floating point columns (:class:`DoubleType` or :class:`FloatType`).
  
      >>> df = spark.createDataFrame([(1.0, float('nan')), (float('nan'), 2.0)], ("a", "b"))
      >>> df.select(nanvl("a", "b").alias("r1"), nanvl(df.a, df.b).alias("r2")).collect()
      [Row(r1=1.0, r2=1.0), Row(r1=2.0, r2=2.0)]