def processSuggestions()

in src/main/scala/deequ/deequ-suggestion-runner.scala [147:176]


  def processSuggestions(glueDF: DataFrame, glueDB: String, glueTable: String): DataFrame = {

    val suggestionResult = {
      ConstraintSuggestionRunner()
        .onData(glueDF)
        .addConstraintRules(Rules.DEFAULT)
        .run()
    }

    val suggestionDataFrame = suggestionResult.constraintSuggestions.flatMap {
      case (column, suggestions) =>
        suggestions.map { constraint =>
          (column, constraint.description, constraint.codeForConstraint)
        }
    }.toSeq.toDS()

    val uuid = udf(() => java.util.UUID.randomUUID().toString)
    val now = LocalDateTime.now().toString()+"Z"
    suggestionDataFrame
      .withColumn("id", uuid())      
      .withColumn("database", lit(glueDB))
      .withColumn("tablename", lit(glueTable))
      .withColumnRenamed("_1", "column")
      .withColumnRenamed("_2", "constraint")
      .withColumnRenamed("_3", "constraintCode")
      .withColumn("enable", lit("N"))
      .withColumn("__typename", lit("DataQualitySuggestion"))
      .withColumn("createdAt", lit(now))
      .withColumn("updatedAt", lit(now))
  }