可以说我有一个文件,每行代表一个数字。如何在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。
您需要应用aRDD.map
来解析字符串,然后再减少它们:
val sum = data.map(_.toInt).reduce(_+_)
val avg = sum / data.count()
但是我认为最好使用DoubleRDDFunctions.mean
而不是自己计算:
val mean = data.map(_.toInt).mean()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句