spark 统计填充率
时间: 2023-10-27 10:05:49 浏览: 122
Spark 统计填充率可以使用以下代码:
```scala
val df = spark.read.format("csv")
.option("header", "true")
.option("inferSchema", "true")
.load("path/to/file.csv")
val totalRows = df.count()
val nullCount = df.select(df.columns.map(c => sum(col(c).isNull.cast("int")).alias(c)): _*)
.collect()
.map(_.toSeq)
.flatten
.map(_.asInstanceOf[Long])
val fillRate = (totalRows - nullCount.sum) / totalRows.toDouble
```
首先,使用 `spark.read` 方法读取 CSV 文件,然后计算数据框的总行数。接下来,使用 `select` 方法和 `sum`、`col`、`isNull` 和 `cast` 函数计算每个列中的空值数。然后,使用 `collect` 方法获取结果,使用 `map` 方法将结果转换为一维数组,并使用 `flatten` 方法将所有元素连接成一个数组。最后,使用 `asInstanceOf` 方法将所有元素转换为 `Long` 类型,使用 `sum` 方法计算所有元素的总和,然后将其减去总行数中的空值数,除以总行数,即可得到填充率。
阅读全文