假设我有一个文件,每行代表一个数字。如何在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。
答案 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()