【发布时间】:2015-09-04 08:51:39
【问题描述】:
我对 Scala 和 Spark 都很陌生,所以如果我完全错误地处理这个问题,请原谅我。取一个csv文件,过滤,映射后;我有一个 RDD,它是一堆 (String, Double) 对。
(b2aff711,-0.00510)
(ae095138,0.20321)
(etc.)
当我在 RDD 上使用 .groupByKey() 时,
val grouped = rdd1.groupByKey()
得到一个包含一堆 (String, [Double]) 对的 RDD。 (我不知道 CompactBuffer 是什么意思,也许会导致我的问题?)
(32540b03,CompactBuffer(-0.00699, 0.256023))
(a93dec11,CompactBuffer(0.00624))
(32cc6532,CompactBuffer(0.02337, -0.05223, -0.03591))
(etc.)
一旦将它们分组,我就会尝试取平均值和标准差。我想简单地使用 .mean() 和 .sampleStdev()。当我尝试创建一个新的RDD的手段时,
val mean = grouped.mean()
返回错误
Error:(51, 22) value mean is not a member of org.apache.spark.rdd.RDD[(String, Iterable[Double])]
val mean = grouped.mean( )
我已经导入了 org.apache.spark.SparkContext._
我还尝试使用 sampleStdev()、.sum()、.stats() 得到相同的结果。不管是什么问题,它似乎都会影响所有数字 RDD 操作。
【问题讨论】:
-
前段时间我问并回答了一个类似的问题,它(以下网址)可能会对您和其他人有所帮助:stackoverflow.com/questions/29930110/…
标签: scala apache-spark