文档章节

Scala 学习草稿 1

insights
 insights
发布于 2017/01/11 22:56
字数 224
阅读 17
收藏 0
class DomainNamePartitioner(numParts:Int) extends Partitionar {
	override def numPartitions:Int = numParts
	override def getPartition(key:Any):Int = {
		val domain = new Java.net.URL(key.toString()).getHost()
		val code = (domain.hashCode % numPartitions)

		if(code <0 ) {
			code + numPartitions
		} else {
			code
		}
	}

	override def equals(key:Any):Boolean = other match {
		case dnp:DomainNamePartitioner =>
			dnp.numPartitions == numPartitions
		case _ =>
			false
	} 
}

 

上面这段是一个自定义的partitioner好像是RDD分区用的

有哪位大神告诉我上面的other match是什么鬼语法。 

刚看spark。 这语法other match啥的真是少见。

class SearchFunction(object):

	def __init__(self,query):
		self.query = query

	def isMatch(self,s):
		return self.query in s


	def getMatchesFunctionReference(self,rdd):
		return rdd.filter(self.isMatch)

	def getMatchesMemberReference(self,rdd):
		return rdd.filter(lambda x:s)




class WordkFunctions(object):
	def getMatchesNoReference(self,rdd):
		query = self.query
		return rdd.filter(lambda x:query in x)

 

class SearchFunctions(val query:String) {
	def isMatch(s:String):Boolean = {
		s.contains(query)
	}

	def getMatchesFunctionReference(rdd:RDD[String]):RDD[String] {
		rdd.map(isMatch)
	}

	def getMatchesFieldReference(rdd:RDD[String]):RDD[String] = {
		rdd.map(x=>x.split(query))
	}

	def getMatchesNoReference(rdd:RDD[String]):RDD[String] {
		val query_ = this.query
		rdd.map(x=>x.split(query_))
	}
}

为了节省点硬盘都粘上来了了。

 

© 著作权归作者所有

insights

insights

粉丝 2
博文 5
码字总数 445
作品 0
西安
后端工程师
私信 提问
Play Framework 2.0 Beta,Web 框架的新时代

Play Framework 发布了 2.0 首个 beta 测试版本,下载地址: http://download.playframework.org/releases/play-2.0-beta.zip 该 beta 版本几乎包含 2.0 中所有新特性的体验,包括内置的 Sc...

红薯
2011/11/16
2.2K
7
Scala的安装,入门,学习,基础

1:Scala的官方网址:http://www.scala-lang.org/ 推荐学习教程:http://www.runoob.com/scala/scala-tutorial.html   Scala是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函...

别叫小伙
2017/12/19
0
0
Scala学习笔记-基础语法

Scala学习笔记-基础语法 OneCoder2016-09-2046 阅读 Scala 上手学习Scala语言。先熟悉一下语法。对于Scala笔者也是完全的新手,对scala的设计思想和实现原理没有太多了解。错误在所难免,还望...

OneCoder
2016/09/20
0
0
Scala:用 Scala 进行 OO 教学

1、 怎样用OO思想分解问题?OO这种思考过程有什么优点、限制和不足? 2、 为什么模块化的OO范式使得其具有可扩展性?基于类的编程方法在模块性方面有什么优点和不足?哪些设计模式和现代编程...

技术小阿哥
2017/11/27
0
0
Markdown使用时的一个BUG的发现过程

前言 遇到bug应该只要提交给官方就好了。但是我正好在学习Web前端,遇到了问题就正好运用新学的知识试着自己处理一下。恰好我又刚好运用新学的知识找到了问题,于是就记录一下自己遇到问题和...

骑士救兵
2018/02/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

spring cloud

一、从面试题入手 1.1、什么事微服务 1.2、微服务之间如何独立通讯的 1.3、springCloud和Dubbo有哪些区别 1.通信机制:DUbbo基于RPC远程过程调用;微服务cloud基于http restFUL API 1.4、spr...

榴莲黑芝麻糊
5分钟前
0
0
Executor线程池原理与源码解读

线程池为线程生命周期的开销和资源不足问题提供了解决方 案。通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。 线程实现方式 Thread、Runnable、Callable //实现Runnable接口的...

小强的进阶之路
昨天
6
0
maven 环境隔离

解决问题 即 在 resource 文件夹下面 ,新增对应的资源配置文件夹,对应 开发,测试,生产的不同的配置内容 <resources> <resource> <directory>src/main/resources.${deplo......

之渊
昨天
8
0
详解箭头函数和普通函数的区别以及箭头函数的注意事项、不适用场景

箭头函数是ES6的API,相信很多人都知道,因为其语法上相对于普通函数更简洁,深受大家的喜爱。就是这种我们日常开发中一直在使用的API,大部分同学却对它的了解程度还是不够深... 普通函数和...

OBKoro1
昨天
7
0
轻量级 HTTP(s) 代理 TinyProxy

CentOS 下安装 TinyProxy yum install -y tinyproxy 启动、停止、重启 # 启动service tinyproxy start# 停止service tinyproxy stop# 重启service tinyproxy restart 相关配置 默认...

Anoyi
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部