如何对数据集火花中的某些列进行笛卡尔坐标求和?

时间:2019-06-28 10:13:51

标签: java apache-spark dataset

我有一个使用Java的数据集:

+---------+-------------------+------+
|country  |      isNew        |   req|
+---------+-------------------+------+
|       vn|               true|    10|
|       vn|              false|     3|
|       mm|               true|     4|
|       mm|              fasle|     1|
+---------+-------------------+------+

我想要笛卡尔列国家,并且是全部为isNew和求和。结果如下:

+---------+-------------------+------+
|country  |      isNew        |   req|
+---------+-------------------+------+
|      all|                all|    18|
|      all|               true|    14|
|      all|              false|     4|
|       vn|                all|    13|
|       mm|                all|     5|
|       vn|               true|    10|
|       vn|              false|     3|
|       mm|               true|     4|
|       mm|              fasle|     1|
+---------+-------------------+------+

请帮助我解决此问题。谢谢大家的帮助。

1 个答案:

答案 0 :(得分:1)

df.cube("country", "isNew")
  .agg(sum("req") as "req")
  .na.fill("all")