这个问题的原因是 Amazon Deequ 当前无法在 Docker 容器内运行,并且必须在本地的计算机上使用。解决方法是将 Amazon Deequ 直接安装到本地计算机上。
以下是可以使用的代码示例:
import org.apache.spark.sql.SparkSession
import com.amazon.deequ._
import com.amazon.deequ.checks.{Check, CheckLevel, CheckStatus}
import com.amazon.deequ.constraints.ConstraintStatus
import com.amazon.deequ.constraints.ConstrainableDataTypes.{Double, Integral, Fractional}
import com.amazon.deequ.metrics.Metric
val spark = SparkSession.builder().appName("example-usage").master("local").getOrCreate()
val data = spark.read.json("src/main/resources/example.json")
// define a simple constraint
val hasAtLeast5Rows = Constraint("At least 5 rows")(_.count >= 5, ">= 5")
// create a check object for this constraint
val verificationResult = VerificationSuite()
.onData(data)
.addCheck(
Check(CheckLevel.Warning, "group-1")
.addConstraint(hasAtLeast5Rows))
.run()
// print the check result
println(verificationResult)
这个示例可能需要根据自己的情况进行修改。为此,只需根据实际情况更改 SparkSession、atLeastFiveRows、read.icsv() 和 VerificationSuite().run() 的参数即可。