Spark - 计算列中所有值的总和

时间:2018-05-29 09:49:28

标签: scala apache-spark

我是Spark的新手(学习阶段)。

我有一个带有单个列的RDD,其中包含以下值:

package main

import (
    "net/http"
    "fmt"
    "io/ioutil"
    //encode and decode JSON streams
    "encoding/json"
)



func main() {
    response, err := http.Get("https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=MSFT&interval=1min&apikey=demo")

    if err!=nil{
        fmt.Println(err)
        return
    }
    defer response.Body.Close()
    contents, err := ioutil.ReadAll(response.Body)
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(string(contents))
}

现在我想在不使用Spark SQL的情况下计算所有值的总和。

我已经尝试了很多方法来解决这个问题,但无法真正解决它。

  

val rdd2 = rdd1.map(agg(sum()))

     

val rdd2 = rdd1.map(c => sum(col(c)))

     

val rdd2 = rdd1.collect()。sum()

我可以向你保证这不是一个重复的问题,我搜索了所有相关的问题,但没有发现任何类似的问题。无论谁认为其重复的问题,请再次请求您阅读。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

字面意思是sum

scala> val rdd = sc.parallelize(Seq(5000, 6000, 7000, 8000, 9000))
rdd: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[0] at parallelize at <console>:24

scala> rdd.sum
res0: Double = 35000.0