Apache spark Spark合并两个单值数据集

Apache spark Spark合并两个单值数据集,apache-spark,apache-spark-sql,apache-spark-dataset,Apache Spark,Apache Spark Sql,Apache Spark Dataset,我有一个具有以下模式的数据集 |-- Name: string (nullable = true) |-- Values: long (nullable = true) |-- Count: integer (nullable = true) 输入数据集 +------------+-----------------------+--------------+ |Name |Values |Co

我有一个具有以下模式的数据集

|-- Name: string (nullable = true)
|-- Values: long (nullable = true)
|-- Count: integer (nullable = true)
输入数据集

+------------+-----------------------+--------------+                           
|Name        |Values                 |Count         |
+------------+-----------------------+--------------+
|A           |1000                   |1             |
|B           |1150                   |0             |
|C           |500                    |3             |
+------------+-----------------------+--------------+
我的结果数据集的格式必须为

+------------+-----------------------+--------------+                           
|Sum(count>0)|      sum(all)         | Percentage   |
+------------+-----------------------+--------------+
|    1500    |      2650             | 56.60        |
+------------+-----------------------+--------------+
我目前可以通过运行

val non_zero = df.filter(col(COUNT).>(0)).select(sum(VALUES).as(NON_ZERO_SUM))
val total = df.select(sum(col(VALUES)).as(TOTAL_SUM))
我不知道如何将两个独立的数据集合并成一个数据集,然后用这个数据集计算百分比

同样的问题能否以更好的方式解决


谢谢,

我会使用单一聚合:

import org.apache.spark.sql.functions._

df.select(
  sum(when($"count" > 0, $"values')).alias("NON_ZERO_SUM"),
  sum($"values").alias("TOTAL_SUM")
)

我将使用单个聚合:

import org.apache.spark.sql.functions._

df.select(
  sum(when($"count" > 0, $"values')).alias("NON_ZERO_SUM"),
  sum($"values").alias("TOTAL_SUM")
)