Classe EvaluateDataQuality - AWS Glue

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Classe EvaluateDataQuality

AWS Glue Data Quality est disponible en version préliminaire pour AWS Glue et susceptible d'être modifié.

Package : com.amazonaws.services.glue.dq

object EvaluateDataQuality

Def apply

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

Évalue un ensemble de règles de qualité des données par rapport à un DynamicFrame, et renvoie un nouveau DynamicFrame avec les résultats de l'évaluation. Pour en savoir plus sur AWS Glue Data Quality, consultez AWS Glue Qualité des données.

  • frameDynamicFrame dont vous souhaitez évaluer la qualité des données.

  • ruleset – Ensemble de règles DQDL (Data Quality Definition Language) au format de chaîne. Pour en savoir plus sur DQDL, consultez le guide Référence DQQuality Definition LanguageDQDL).

  • publishingOptions – Dictionnaire qui spécifie les options de publication suivantes des résultats et des métriques d'une évaluation :

    • dataQualityEvaluationContext – Chaîne qui spécifie l'espace de noms dans lequel AWS Glue doit publier les métriques Amazon CloudWatch et les résultats relatifs à la qualité des données. Les métriques agrégées apparaissent dans CloudWatch, tandis que les résultats complets s'affichent dans l'interface AWS Glue Studio.

      • Obligatoire : non

      • Valeur par défaut : default_context

    • enableDataQualityCloudWatchMetrics – Spécifie si les résultats de l'évaluation de la qualité des données doivent être publiés sur CloudWatch. Vous spécifiez un espace de noms pour les métriques à l'aide de l'option dataQualityEvaluationContext.

      • Obligatoire : non

      • Valeur par défaut : False

    • enableDataQualityResultsPublishing – Spécifie si les résultats relatifs à la qualité des données doivent être visibles dans l'onglet Data Quality (Qualité des données) de l'interface AWS Glue Studio.

      • Obligatoire : non

      • Valeur par défaut : True

    • resultsS3Prefix – Spécifie l'emplacement Amazon S3 où AWS Glue peut écrire les résultats de l'évaluation de la qualité des données.

      • Obligatoire : non

      • Valeur par défaut : "" (chaîne vide)

Exemple

L'exemple de code suivant montre comment évaluer la qualité des données pour DynamicFrame avant d'effectuer une transformation SelectFields. Le script vérifie que l'ensemble des règles de qualité des données sont conformes avant de tenter la transformation.

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() } }