EvaluateDataQuality クラス - AWS Glue

EvaluateDataQuality クラス

AWS Glue Data Quality は AWS Glue のプレビューリリースに含まれ、変更される可能性があります。

パッケージ: com.amazonaws.services.glue.dq

object EvaluateDataQuality

def apply

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

DynamicFrame に対してデータ品質ルールセットを評価し、評価の結果を含む新しい DynamicFrame を返します。AWS Glue Data Quality の詳細については、「AWS Glue Data Quality」を参照してください。

  • frame – データ品質を評価する DynamicFrame

  • ruleset – 文字列形式のデータ品質定義言語 (DQDL) ルールセット。DQDL の詳細については、データ品質定義言語 (DQDL) リファレンス のガイドを参照してください。

  • publishingOptions – 評価結果とメトリクスを発行する次のオプションを指定するディクショナリ。

    • dataQualityEvaluationContext – AWS Glue が Amazon CloudWatch メトリクスとデータ品質結果を発行する名前空間を指定する文字列。集計されたメトリクスは CloudWatch に表示され、完全な結果は AWS Glue Studio インターフェイスに表示されます。

      • 必須:いいえ

      • デフォルト値: default_context

    • enableDataQualityCloudWatchMetrics– データ品質評価の結果を CloudWatch に発行するかどうかを指定します。dataQualityEvaluationContext オプションを使用してメトリクスの名前空間を指定します。

      • 必須:いいえ

      • デフォルト値: False

    • enableDataQualityResultsPublishing – データ品質結果を AWS Glue Studio インターフェイスの [Data Quality] (データ品質) タブに表示するかどうかを指定します。

      • 必須:いいえ

      • デフォルト値: True

    • resultsS3Prefix – AWS Glue がデータ品質評価結果を書き込める Amazon S3 ロケーションを指定します。

      • 必須:いいえ

      • デフォルト値: "" (空の文字列)

次のコード例は、SelectFields 変換を実行する前に DynamicFrame のデータ品質を評価する方法を示しています。変換を試行する前に、すべてのデータ品質ルールに合格していることを、このスクリプトで検証します。

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