Spark:值mean不是Array [Any]的成员

时间:2017-12-01 01:59:08

标签: scala apache-spark

我正在使用数据框中的RDD来计算列的平均值。这是我的RDD

 dataframe.rdd.map(x => (x(2))).take(5)
 # res51: Array[Any] = Array(499, 200, 400, 151, 65)

我正在寻找那个阵列的意思。这是我的代码:

 dataframe.rdd.map(x => (x(2))).mean

 <console>:31: error: value mean is not a member of org.apache.spark.rdd.RDD[Any]
          dataframe.rdd.map(x => (x(2))).mean

1 个答案:

答案 0 :(得分:2)

如果您有以下unsigned int bitmask = 1 << (15 - i); output[i] = '0' + ((input & bitmask) ? 1 : 0);

dataframe

您可以使用+----+----+------+ |col1|col2|col3 | +----+----+------+ |a |1 |908.76| |b |2 |901.74| |c |3 |83.71 | |d |5 |39.36 | |e |2 |234.64| +----+----+------+ 函数

dataframe中计算均值
mean

应该给你

import org.apache.spark.sql.functions._
df.select(mean("col3").as("mean").show(false)

如果您坚持使用+-------+ |mean | +-------+ |433.642| +-------+ ,那么您可以执行以下操作

RDD

这里我使用了df.rdd.map(x => (x(2).asInstanceOf[Double])).mean ,因为那就是我想要2的列。 你唯一的错误就是你忘记了将mean变量默认为x(3)并且 scala编译器找不到{{em> {1}} dataType

我希望答案很有帮助