注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

阿弥陀佛

街树飘影未见尘 潭月潜水了无声 般若观照心空静...

 
 
 

日志

 
 
关于我

一直从事气象预报、服务建模实践应用。 注重气象物理场、实况场、地理信息、本体知识库、分布式气象内容管理系统建立。 对Barnes客观分析, 小波,计算神经网络、信任传播、贝叶斯推理、专家系统、网络本体语言有一定体会。 一直使用Java、Delphi、Prolog、SQL编程。

网易考拉推荐

spark takeOrdered  

2015-03-02 14:39:55|  分类: Spark |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
package mytest

import org.apache.spark.SparkContext._
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.rdd.RDD

/**
* Created by 何险峰 on 15-3-2.
*/
case class Euclidean(x: Double, y: Double) {
def dist(c: Euclidean) = Math.sqrt(Math.pow(x - c.x, 2) + Math.pow(y - c.y, 2))
}

class CoordOrdering(x: Euclidean) extends Ordering[Euclidean] {
def compare(a: Euclidean, b: Euclidean) = a.dist(x) compare b.dist(x)
}

object TakeOrdered {
val conf = new SparkConf().setMaster("local").setAppName("TakeOrdered")
val sc = new SparkContext(conf)

def seq_test {
val se2 = sc.parallelize(Seq(2, 3, 4, 5, 6)).takeOrdered(2)
println(se2.mkString(","))
}

def euclidean_test = {
val grid = (1 to 50000).map { _ => Euclidean(Math.random * 5, Math.random * 5)}
val se2 = sc.parallelize(grid)
val t1 = System.currentTimeMillis()
for (i <- 0 until 10 * 10) {
val x = Euclidean(Math.random * 5, Math.random * 5)
val x10=se2.takeOrdered(10)(new CoordOrdering(x))
}
val t2 = System.currentTimeMillis()
//println("x"+x)
//println(se2.mkString(","))
println("mm" + (t2 - t1))
}

def main(args: Array[String]) {
euclidean_test
}
}
=====================================================
mm9488
  评论这张
 
阅读(454)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017