首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >火花最高温度示例(按权威指南)

火花最高温度示例(按权威指南)
EN

Stack Overflow用户
提问于 2016-03-27 02:06:07
回答 1查看 1.3K关注 0票数 0

我是scala的新手,我试着执行Hadoop权威指南中的程序最高温度,但它最后抛出了错误数组异常。我不能清楚地理解书中的代码。

下面是代码

代码语言:javascript
复制
import org.apache.spark.SparkContext._
import org.apache.spark.{SparkConf, SparkContext}
object MaxTemperature {
def main(args: Array[String]) {
val conf = new SparkConf().setAppName("Max Temperature").setMaster("local")
val sc = new SparkContext(conf)
val lines = sc.textFile("011990-99999-1949.txt")
val records = lines.map(_.split("\t"))
val filtered = records.filter(rec => (rec(1) != "9999"
&& rec(2).matches("[01459]")))
val tuples = filtered.map(rec => (rec(0).toInt, rec(1).toInt))
val maxTemps = tuples.reduceByKey((a, b) => Math.max(a, b))
maxTemps.foreach(println(_))
}
}

我只知道他们正在读取文件,在拆分和映射函数之后,我没有尝试拆分拆分和映射函数到不同的RDD,但没有得到有用的东西,有人可以建议我如何检查每个步骤的输出。

感谢并问候阿米特

EN

回答 1

Stack Overflow用户

发布于 2016-04-19 23:41:15

请尝试下面的代码,它可能会有所帮助:

样本输入:- 91 67阿格拉北方邦33 19 90 67阿拉哈巴德北方邦32 19 87 60阿姆利则旁遮普邦30 15 89 66博帕尔中央邦32 19 87 62昌迪加尔30 17 82 60印度北方邦28 15 89 64印度中央邦32 18 89 65勒克努北方邦40 18

目标:-找到特定状态的最高温度

我们的程序来了:

代码语言:javascript
复制
import org.apache.spark._;

object testfilter extends App {
  val conf=new SparkConf().setMaster("local[2]").setAppName("testfilter")
  val sc = new SparkContext(conf)
  System.setProperty("hadoop.home.dir", "c://winutil//")
  val input=sc.textFile("file:///D://sparkprog//temp//stats.txt")
  val line=input.map(x=>x.split("\t"))
  val city=line.map(x=>(x(3)+"\t" + x(4)))
  val rdd3=city.map(x=>x.split("\t"))
  val maintemp=rdd3.map(x=>((x(0),x(1))))
  val grp= maintemp.groupByKey()
  val main = grp.map{case (x,iter) => (x,iter.toList.max)}


  for ( i<- main)
  {
    print(i)
    print("\n")
  }

}

运行上面的程序,我们将得到如下输出:-(查姆和克什米尔,20)(中央邦,32)

(比哈尔,31岁)等等。

重要提示:-输入用制表符分隔

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36238883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档