def compare_null_last( left: spark.Column, right: spark.Column, comp: Callable[[spark.Column, spark.Column], spark.Column], ) -> spark.Column: return (left.isNotNull() & right.isNotNull() & comp(left, right)) | (left.isNotNull() & right.isNull())
def compare_null_last( left: Column, right: Column, comp: Callable[[Column, Column], Column], ) -> Column: return (left.isNotNull() & right.isNotNull() & comp(left, right)) | (left.isNotNull() & right.isNull())
def compare_allow_null( left: Column, right: Column, comp: Callable[[Column, Column], Column], ) -> Column: return left.isNull() | right.isNull() | comp(left, right)
def compare_allow_null( left: spark.Column, right: spark.Column, comp: Callable[[spark.Column, spark.Column], spark.Column], ) -> spark.Column: return left.isNull() | right.isNull() | comp(left, right)