All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sparkutils.quality.impl.util.ComparableMapsImports.scala Maven / Gradle / Ivy

package com.sparkutils.quality.impl.util

import org.apache.spark.sql.Column
import org.apache.spark.sql.qualityFunctions.utils
import org.apache.spark.sql.types.DataType

trait ComparableMapsImports {
  /**
   * Efficiently converts the map column to struct for comparison, unioning, sorting etc.
   * @param map
   * @param compareF - allows overriding of the default implementation
   * @return
   */
  def comparable_maps(map: Column, compareF: DataType => Option[(Any, Any) => Int] = (dataType: DataType) => utils.defaultMapCompare(dataType)): Column =
    ComparableMapConverter(map,compareF)

  /**
   * Efficiently converts the mapStruct column to it's original Map type
   *
   * @param mapStruct
   * @return
   */
  def reverse_comparable_maps(mapStruct: Column): Column =
    new Column(ComparableMapReverser(mapStruct.expr))
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy