【发布时间】:2017-12-01 20:11:35
【问题描述】:
我正在 Apache Spark 中的 Scala shell 中进行试验。 我有一个包含值列表的文本文件,我想找到特定列的平均值。我的 input.txt 文件如下所示。 (这不是整个文件,而是一个示例。)
1 12.4 12.5 18.9 19.9
2 1.7 1.9
3 11.99 1.9 8.9 12.90978933
2 89.987 7.99 12.898980800000
1 12.8 1.88 1.8
2 1.9 1.8 1.8979 1.808888
我想找到第 1 列中每列第 5 列的平均值。例如,假设这些是一组学生 ID 和标记。对于每个学生 ID,我想找到最后一门科目的分数。另请注意,最后一列中缺少某些值。
这是我迄今为止尝试过的代码。
val text = sc.textFile("/neerja/input.txt")
val data = text.flatMap(line => line.split("\\t")).map(word => (word,1).reduceByKey(_ + _);
我想获取最后一列并找到平均值。 作为第一步,我想获取最后一列中的所有值。
val fourth = text.map(_.split("\\t")(4)).collect
但这给了我ArrayIndexOutOfBoundException。我怀疑它的发生是因为最后一列中缺少一些值。请帮我找出最后一列的平均值。任何帮助将不胜感激。
【问题讨论】:
标签: scala apache-spark apache-spark-sql