gpt4 book ai didi

java - 检查列是否包含缺失值

转载 作者:行者123 更新时间:2023-12-02 01:31:21 25 4
gpt4 key购买 nike

我正在编写一个验证函数,它应该检查:

  1. 一个Dataset<Row> ds有列 col1col2 。它也可能包含其他列。
  2. 验证 col1 中不存在缺失值(NaN、NULL、null 等)和col2 .

代码应该是Java代码。这是我到目前为止所拥有的

private static boolean isSleepDataValid(SparkSession spark, Dataset<Row> ds) {

ds.createOrReplaceTempView("validityData");
if (spark.sql("SELECT col1 FROM validityData WHERE col1 IS NULL").count() > 0) {
return false;
}
if (spark.sql("SELECT col2 FROM validityData WHERE col2 IS NULL").count() > 0) {
return false;
}
return true;
}

但是,这很丑陋,我正在寻找一种更好、更干净的方法。我想避免SparkSession spark在函数体的签名和 SQL 中。

最佳答案

要使用 Spark DSL,类似于

return ds
.filter(ds.col("col1").isNull().or(ds.col("col2").isNull()))
.limit(1)
.count() == 0;

请注意,当发现空值时,limit 1 可能会提高效率。

关于java - 检查列是否包含缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56002655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com