

# EvaluateDataQuality クラス
<a name="glue-etl-scala-apis-glue-dq-EvaluateDataQuality"></a>


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

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

```
object EvaluateDataQuality
```

## def apply
<a name="glue-etl-scala-apis-glue-dq-EvaluateDataQuality-defs-apply"></a>

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

`DynamicFrame` に対してデータ品質ルールセットを評価し、評価の結果を含む新しい `DynamicFrame` を返します。AWS Glue Data Quality の詳細については、「[AWS Glue Data Quality](glue-data-quality.md)」を参照してください。
+ `frame` – データ品質を評価する `DynamicFrame`。
+ `ruleset` – 文字列形式のデータ品質定義言語 (DQDL) ルールセット。DQDL の詳細については、[データ品質定義言語 (DQDL) リファレンス](dqdl.md) のガイドを参照してください。
+ `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 ロケーションを指定します。
    + 必須: いいえ
    + デフォルト値: "" (空の文字列)

## 例
<a name="glue-etl-scala-apis-glue-dq-EvaluateDataQuality-example"></a>

次のコード例は、`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()
  }
}
```