我是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()
我可以向你保证这不是一个重复的问题,我搜索了所有相关的问题,但没有发现任何类似的问题。无论谁认为其重复的问题,请再次请求您阅读。
非常感谢任何帮助。
答案 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