Holds user defined functions that can be injected to UDFRegistration All the functions have to operate on java.lang.Double as input and output, scala.Double does not support null values (null is converted to 0.0) which would lead to undesired information loss (we expect null values in DataFrames)