计算spark scala中文本文件中数字的平均值

时间:2016-05-08 08:01:43

标签: scala apache-spark

假设我有一个文件,每行代表一个数字。如何在Scala - Spark中找到文件中所有数字的平均值。

val data = sc.textFile("../../numbers.txt")
val sum = data.reduce( (x,y) => x+y )
val avg = sum/data.count()

这里的问题是x和y是字符串。如何在reduce函数中将它们转换为Long。

1 个答案:

答案 0 :(得分:7)

你需要应用一个RDD.map来解析字符串,然后再减少字符串:

function ok() {
    var val = document.getElementById( "euro" ).value;
    var eurosNumber = Number( val );

    document.getElementById( "coins" ).innerHTML = eurosNumber + 100;
}

但我认为你最好不要使用DoubleRDDFunctions.mean而不是自己计算:

val sum = data.map(_.toInt).reduce(_+_)
val avg = sum / data.count()