Spark Scala如何在单循环中处理多个列

时间:2018-02-08 09:39:11

标签: scala apache-spark

Bellow行分别是Mango,Apple,Orange专栏的数据框

   [10,20,30]
   [100,2000,300]
   [1000,200,3000]

对于上述数据框:我需要得到像

这样的摘要
{Mango: 1110; Apple:2220; Orange:3330 }

如何使用单次迭代执行此操作?

1 个答案:

答案 0 :(得分:0)

如果你有一个简单的dataframe,如下所示

+-----+-----+------+
|Mango|Apple|Orange|
+-----+-----+------+
|10   |20   |30    |
|100  |200  |300   |
|1000 |2000 |3000  |
+-----+-----+------+

你可以做类似下面的事情

df.select(sum("Mango").as("Mango"), sum("Apple").as("Apple"), sum("Orange").as("Orange")).toJSON.rdd.foreach(println)

将输出为

{"Mango":1110,"Apple":2220,"Orange":3330}