Spark合并两个单值数据集

时间:2017-08-12 13:06:14

标签: apache-spark apache-spark-sql apache-spark-dataset

我有一个包含以下架构的数据集

|-- 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        |
+------------+-----------------------+--------------+

我目前能够通过运行

获得各个数据集中的总和(计数> 0)和总和(全部)
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))

我对如何将两个独立数据集合并为一个数据集感到茫然,我将用它来计算百分比。

也可以以更好的方式解决同样的问题吗?

谢谢,

0 个答案:

没有答案