- 博客(26)
- 收藏
- 关注
原创 设计模式之适配器模式
适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。 类适配器:package com.demo.model.adaptor;public class AdaptorModel { static class Adaptee{ public void spec
2017-07-13 10:03:42 252
原创 spark源码解析 spark-core之rpc
最近在看spark-2.1.1的源码,感觉还是有必要记录下,ok 废话就不说了。 自从1.6之后spark rpc的默认实现由原来的akka被netty所替代。netty基于消息发挥作用,并且多地用于网络。 它的核心是NIO,早起spark就是用netty解决大文件传输问题,netty具有使用各种协议(如HTTP,FTP,SSL等)的许多功能。同时netty所具有的网络通信的可靠性和高效性此外,可
2017-07-09 00:42:00 350
原创 spark mllib之分类和回归
Problem Type Supported Methods 二分类: 线性SVM(inear SVMs,), 罗辑回归(logistic regression), 决策树(decision trees),随机森林(random forests), 梯度增强树( gradient-boosted trees), 朴素贝叶斯(naive Bayes) 多分类器: 罗辑回归(logi
2017-07-06 14:44:44 507
原创 最长公共子序列
一个给定序列的子序列就是该子序列中去掉零个或者多个元素,以形式化的方式就是X={x1,x2……xn},另一个序列Z={z1,z2….zn}是X的子序列,如果存在X的一个严格递增下标序列,(i1,i2…in)使得对于所有的j=1,2….k有xi=zj,例如Z={BCDB}是X={ABCBDAB}的一个子序列,相应的下标序列为{2,3,5,7}。 给定两个序列X和Y,称序列Z是X和Y的公共子序列,如果
2017-07-05 19:14:17 215
原创 设计模式之原型模式
原型模式是通过复制一个已经存在的实例来返回新的实例,被复制的实例就是我们所称的原型,这个原型是可定制的,原型模式多用于创建复杂的或者耗时的实例, 因为这种情况下,复制一个已经存在的实例可以使程序运行更高效,或者创建值相等,只是命名不一样的同类数据.原型模式中的拷贝分为浅拷贝和深拷贝: 浅拷贝: 对值类型的成员变量进行值的复制,对引用类型的成员变量只复制引用,不复制引用的对象. 深拷贝: 对值类型
2017-07-03 22:49:35 187
原创 spark mllib之基本数据统计
colStats()返回一个MultivariateStatisticalSummary的实例,它包含列的最大值,最小值,平均值,方差和非零序数,以及总计数。import org.apache.spark.mllib.linalg.Vectorsimport org.apache.spark.mllib.stat.{MultivariateStatisticalSummary, Statistic
2017-07-03 12:35:19 1920
原创 设计模式之建造者模式
建造者模式有点类似建房子,有一个固定的流程,即将一个复杂对象的构造和他的表示分离,使得同样的构造过程可以创建不同的表示。 建造者模式的角色定义,在建造者模式中存在以下4个角色: 1 builder:为创建一个产品对象的各个部件指定抽象接口。 2 ConcreteBuilder:实现Builder的接口以构造和装配该产品的各个部件,定义并明确它所创建的表示,并提供一个检索产品的接口。
2017-07-03 11:00:19 217
原创 spark mllib之Extracting, transforming and selecting fea
提取,转换和选择功能 本节介绍使用功能的算法,大致分为以下几类:提取:从“原始”数据中提取特征 转换:缩放,转换或修改功能 选择:从较大的一组特征中选择一个子集 局部敏感哈希(LSH):这类算法将特征变换与其他算法相结合。Feature Extractors TF-IDF:是文本挖掘中广泛使用的特征向量化方法,以反映语料库中文档的术语的重要性。 用tt表示术语,dd表示文件,DD表示语料库
2017-07-02 23:46:05 192
原创 spark mllib之Pipelines
管道中的主要概念 DataFrame 管道组件 transformers estimator 管道组件的属性 管道 怎么运行的 细节 参数 储存和装载管道 代码示例 示例:estimator,transformer和参数 示例:管道 型号选择(超参数调整)管道中的主要概念MLlib将机器学习算法的API标准化,以便将多种算法更容易地组合成单个流水线或工作流程。本节介绍了P
2017-07-02 23:37:50 441
原创 java wait notify notifyAll and 多线程顺序打印ABCD
wait()?notify()?notifyAll()? wait() : It tells the calling thread to give up the lock and go to sleep until some other thread enters the same monitor and calls notify(). The wait() method releases the
2017-07-02 03:01:56 652
原创 spark mllib之基本数据类型
spark mllib支持较多的数据类型,从最基本的数据集RDD到部署到集群的向量和矩阵,mllib的基本数据类型如下: 类型名称 释义 local vector:本地向量集,向spark提供可操作的数据集 labeled point:向量标签,让用户能够分类不同的数据集合 local matrix :本地矩阵,将数据集合以矩阵的形式存储在本地计算机 distributed m
2017-06-29 10:50:37 1200
原创 设计模式之单例模式
单例的作用是保证整个application的生命周期中,在任意一个时刻只存在一个,分为两种模式: 1.饿汉模式 在类加载的时候对象就已经存在public class Singleton { private static Singleton singleton = new Singleton(); public Singleton(){} public Singleton ge
2017-06-28 23:01:07 197
原创 设计模式之抽象工厂模式
普通工厂模式下比较重度依赖工厂类,如果想拓展功能则必须对工厂类进行修改,则抽象工厂应运而生,该模式下新建多个工厂类,这样一旦增加功能则只需要增加新的工厂类就ok了,代码如下package com.demo.stragetry;import org.apache.hadoop.classification.InterfaceAudience.Public;import com.sun.corba.se
2017-06-28 22:34:41 235
原创 设计模式子普通工厂模式
在需要不同的条件产生具有多态性质的一组类时,可以考虑使用工厂类来生成. 优点就是职责简单实现单一,实现具体代码和实现解耦,工厂类则是关键里面包含了具体的逻辑判断,缺点也很明显就是如果产品类多的话一堆逻辑判断还是比较恶心的。看示例代码package com.demo.stragetry.public class FactoryTest { static interface Operatio
2017-06-28 10:34:52 268
原创 spark mllib 决策树算法
该样例取自spark高级数据分析第四章的内容,数据集来自http://t.cn/ R2wmIsI,包含一个 CSV 格式的压缩数据文件 covtype.data.gz,附带一个描述数据文件的 信息文件 covtype.info spark mllib将特征向量抽象为LabeledPoint,它由一个包含多个特征值的Spark MLlib Vector 和一个称为标号(label)的目标值组成。该目
2017-06-28 00:05:11 515
原创 spark mllib 之音乐推荐
首先该例子取自spark高级数据分析第二章的样例原始数据集来自http://www-etud.iro.umontreal.ca/~bergstrj/audioscrobbler_data.html 主要包括三个文件: 主要的数据集在文件user_artist_data.txt中,它包含141 000个用 户和 160 万个艺术家,记录了约 2420 万条用户播放艺术家歌曲的信息,其中包括播放次数信
2017-06-27 23:56:32 1321
原创 单链表的相关操作
1.单链表的反转 在这里实现一种最简单的链表反转的方法,递归反转,在反转当前借点之前先反转后续的节点,这样层层深入直到最后一个子节点。package com.weibo.linkedlist;public class ReverseNode { static class ListNodes { int key; ListNodes next;
2017-06-27 23:38:13 186
原创 设计模式之装饰器模式
在传统面向对象的软件设计上经常会遇到一些个问题,对一个类或者对象增加功能,一般两种方式实现包括抽象类和接口,抽象类主要适用于”是不是”,而接口则是用于”有没有”,好比如人和老师学生这种属于同一类,都是人则比较适合抽象类来实现。再好比如飞机和鸟不是同一类但是他们有共同的特性fly()则比较适合使用接口来实现。子类通过继承父类的方法同时获取父类的方法和子类自身方法,但是这个方法是静态的,用户不能控制增加
2017-06-27 23:13:41 280
原创 mapreduce 统计流量
流量统计,第一列为用户手机号,第二列为上行流量,第三列为下行流量,ok 问题来了 根据用户统计用户上行和下行流量1363157985066,2481,246811363157995052,264,01363157991076,132,15121363157995052,240,01363157993044,1527,21061363157995074,4116,1432136315799
2017-06-26 15:17:56 385
原创 设计模式之观察者模式
观察者模式是对象的行为模式,又被称作为发布-订阅模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,在主题对象发生改变时能够自动更新。 观察者模式所涉及的角色有: 1.抽象主题(Subject)角色:抽象主题角色把所有对观察者对象的引用保存在一个聚集(比如ArrayList对象)里,每个主题都可以有任何数量的观察者。抽象主题提供一个接口,可以增加和删除观察者对象,抽象主
2017-06-25 21:54:29 229
转载 设计模式
设计模式分为三大类: 1.创建型模式:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式 2.结构型模式:适配器模式、装饰器模式、代理模式、外观模式、桥梁模式、组合模式、享元模式 3.行为模式:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式 其实还有两类:并发型模式和线程池模式
2017-06-25 21:43:14 170
原创 常见海量数据问题
数据topN的问题解决方式有很多: 1.如果数据比较均匀的话,可以先分桶,再对再大的一个桶做归并或者堆排序 mapreduce 实现topNpackage com.demo.math;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileSystem;import org.apache.hado
2017-06-25 17:20:58 226
原创 mapreduce 统计PV UV
在互联网环境下,一般网站都需要堆网站的pv,uv进行数据统计,简单理解下pv 就是url被访问的次数,uv则是url被不同ip访问的次数,ok 问题来了,一个文本日志,数据格式为:data,url,ip 现在需要使用mr对这份数据按天统计每个url链接的pv和uv。 数据如下:20150405,url1,ip120150405,url2,ip120150405,url1,ip22015040
2017-06-25 17:04:52 4037 1
原创 排序 归并排序+快排
import java.util.Arrays;import org.stringtemplate.v4.compiler.STParser.template_return;public class GuibingSort { public static int[]sort(int[] array,int low,int high){ int mid = (low+high)
2017-06-13 16:35:15 192
原创 排序 堆排序
public class HeapSort { static class ArrayUtils { public static void printArray(int[] array) { System.out.print("{"); for (int i = 0; i < array.length; i++) {
2017-06-13 12:21:19 198
原创 归并排序 单链表
package com.demo.linkedlist;public class GuibingSortList {static class Node { public Node next; public int val;}public static Node merge(Node a, Node b) { Node dummyHead, c...
2017-06-13 12:08:49 263
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人