Classe EvaluateDataQuality - AWS Glue

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Classe EvaluateDataQuality

AWS Glue Data Quality è in versione di anteprima per AWS Glue ed è soggetto a modifica.

Pacchetto: com.amazonaws.services.glue.dq

object EvaluateDataQuality

Applicazione di def

def apply(frame: DynamicFrame, ruleset: String, publishingOptions: JsonOptions = JsonOptions.empty): DynamicFrame

Valuta un set di regole di qualità dei dati rispetto ai dati in un DynamicFrame e restituisce un nuovo DynamicFrame con i risultati della valutazione. Per ulteriori informazioni su AWS Glue Data Quality, consulta Qualità dei dati di AWS Glue.

  • frame: il DynamicFrame di cui desideri valutare la qualità dei dati.

  • ruleset: un set di regole del Data Quality Definition Language (DQDL) in formato stringa. Per ulteriori informazioni su DQDL, consulta la guida di Riferimento a Data Quality Definition Language (DQDL).

  • publishingOptions: un dizionario che specifica le seguenti opzioni per la pubblicazione dei risultati e dei parametri di valutazione:

    • dataQualityEvaluationContext: una stringa che specifica lo spazio dei nomi in cui AWS Glue deve pubblicare i parametri Amazon CloudWatch e i risultati della qualità dei dati. I parametri aggregati vengono visualizzati in CloudWatch, mentre i risultati completi vengono visualizzati nell'interfaccia di AWS Glue Studio.

      • Campo obbligatorio: no

      • Valore predefinito: default_context

    • enableDataQualityCloudWatchMetrics: specifica se i risultati della valutazione della qualità dei dati devono essere pubblicati su CloudWatch. Uno spazio dei nomi per i parametri viene specificato utilizzando l'opzione dataQualityEvaluationContext.

      • Campo obbligatorio: no

      • Valore predefinito: False

    • enableDataQualityResultsPublishing: specifica se i risultati della qualità dei dati devono essere visibili nella scheda Data Quality (Qualità dei dati) nell'interfaccia di AWS Glue Studio.

      • Campo obbligatorio: no

      • Valore predefinito: true

    • resultsS3Prefix: specifica la posizione Amazon S3 in cui AWS Glue può scrivere i risultati della valutazione della qualità dei dati.

      • Campo obbligatorio: no

      • Valore predefinito: "" (stringa vuota)

Esempio

Il codice di esempio seguente dimostra come valutare la qualità dei dati per un DynamicFrame prima di eseguire una trasformazione SelectFields. Lo script verifica che tutte le regole di qualità dei dati siano rispettate prima di tentare la trasformazione.

import com.amazonaws.services.glue.GlueContext import com.amazonaws.services.glue.MappingSpec import com.amazonaws.services.glue.errors.CallSite import com.amazonaws.services.glue.util.GlueArgParser import com.amazonaws.services.glue.util.Job import com.amazonaws.services.glue.util.JsonOptions import org.apache.spark.SparkContext import scala.collection.JavaConverters._ import com.amazonaws.services.glue.dq.EvaluateDataQuality object GlueApp { def main(sysArgs: Array[String]) { val spark: SparkContext = new SparkContext() val glueContext: GlueContext = new GlueContext(spark) // @params: [JOB_NAME] val args = GlueArgParser.getResolvedOptions(sysArgs, Seq("JOB_NAME").toArray) Job.init(args("JOB_NAME"), glueContext, args.asJava) // Create DynamicFrame with data val Legislators_Area = glueContext.getCatalogSource(database="legislators", tableName="areas_json", transformationContext="S3bucket_node1").getDynamicFrame() // Define data quality ruleset val DQ_Ruleset = """ Rules = [ColumnExists "id"] """ // Evaluate data quality val DQ_Results = EvaluateDataQuality.apply(frame=Legislators_Area, ruleset=DQ_Ruleset, publishingOptions=JsonOptions("""{"dataQualityEvaluationContext": "Legislators_Area", "enableDataQualityMetrics": "true", "enableDataQualityResultsPublishing": "true"}""")) assert(DQ_Results.filter(_.getField("Outcome").contains("Failed")).count == 0, "Failing DQ rules for Legislators_Area caused the job to fail.") // Script generated for node Select Fields val SelectFields_Results = Legislators_Area.selectFields(paths=Seq("id", "name"), transformationContext="Legislators_Area") Job.commit() } }