自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

转载 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2017-10-31 16:50:49 282

原创 Numpy

支持高级大量的维度数组和矩阵计算; 快速高效的多位数组对象ndarray; 线性代数,傅里叶变换和随机数生成; 读写硬盘上基于数组的数据集工具;三种数据结构:list array numpy.array 三种方法求和:for sum numpy.sum

2017-10-17 22:32:26 422

原创 Python-数据统计入门

安装PipLinux:pip install -U pip Windows:python -m pip install -U pip Anaconda安装: 创建和启动: conda -create –name py27 python=2.7 activate py27 列出安装: conda list 安装package:conda install numpy 安装分析库:pip

2017-09-05 21:01:45 410

转载 Andrew Ng笔记

Andrew Ng笔记

2017-08-31 09:50:04 271

转载 SVM

svm详解

2017-08-30 15:45:13 300 3

原创 Hive留存率统计

新增加的用户表insert into ta_index_new_user select channel,toal.client_id,access_time,from_unixtime(unix_timestamp(),’yyyy-MM-dd’) from tm_original_access_log toal where toal.client_id not in (select tinu.c

2017-08-30 11:19:02 3223 1

原创 将json数据映射成对象的处理办法

case class Person(channel: String, IP: String, mid: String, user_id_temp: String, user_id: String,

2017-08-29 14:42:35 3368

原创 Mysql常见的引擎

常用的引擎是:Innodb和Myiasm这两种引擎: innodb:提供了对事务的ACID操作,还提供了行级锁和外键约束,,他的优势就是处理大量数据,在msql启动的时候,首先会建立一个缓存池,主要是缓存数据和索引,但是操作大规模的数据查找时很慢,所以建议当需要数据库的事务操作时,使用这个,还有就是在写的时候不会锁定全表,所以在大规模并发操作的时候会提高效率;Myiasm: 这个是默认的引擎,不

2017-08-29 14:35:13 426

转载 Mysql建立索引

Mysql建立索引的方式:fulltext,hash,btree,rtree区别和适应场景:Fulltext:全文索引,只用Myisam引擎,只能在char,varcha人,和text的类型的列上使用,当数据量大的时候,我们首先创建一个没有全文索引的表导入数据,在利用create index 创建一个全文索引,要比直接创建全文索引然后导入数据要快得多; 全文索引的诞生是为了解决模糊查询效率低的;

2017-08-29 14:20:22 625

原创 机器学习之提升

提升:可用于回归和分类,他的每一步产生一个弱分类模型,并加权累加到总模型中;如果 每一步的弱预测模型生成都是依据损失函数的梯度方向,则称梯度提升; 提升首先给定一个目标损失函数;选择一个负梯度方向逐步接近局部极小值; (中位数是绝对最小最优解) 提升算法: 梯度提升的典型基函数就是决策树

2017-08-27 23:29:51 251

原创 机器学习-决策树和随机森林

信息熵熵:度量随机变量的确定量:如果变量完全确定则是0,如果变量完全能不确定则是1; 数学期望(mean):是试验中每次可能结果的概率乘以其结果的总和,它反映随机变量平均取值的大小; 条件熵:在确定的一个或多个条件下,确定另一个信息的熵; 推导过程: 相对熵: 互相息: 总结: 相关熵(KL散度):可以度量两个随机变量之间对的距离;决策树学习算法利用熵来做决策树:就是

2017-08-24 23:55:16 576

原创 机器学习-AUC-ORC-ARIMA

AUC(Area Under Curve) 取不同的参数值,是的TP,FN,FP,TN的分布不同的曲线图, 上述的图的参数取值位置不同,则得到TP,FN,FP,TN不同的值,然后的到TPR和FPR的点,则在图上会表示出一条线(ROC),如果AUC越大(面积越大),则表示分类器则越好;多分类的ROC曲线:可以简化为多个二分类后:第一种就将所有的得到的值取平均值,或者得到的值再去做ROC

2017-08-24 22:21:30 506

转载 数据清洗的要素

预处理阶段预处理阶段主要做两件事情:一是将数据导入处理工具。通常来说,建议使用数据库,单机跑数搭建MySQL环境即可。如果数据量大(千万级以上),可以使用文本文件存储+Python操作的方式。 二是看数据。这里包含两个部分:一是看元数据,包括字段解释、数据来源、代码表等等一切描述数据的信息;二是抽取一部分数据,使用人工查看方式,对数据本身有一个直观的了解,并且初步发现一些问题,为之后的处理做准备。

2017-08-23 17:17:35 4384

原创 机器学习-回归

线性回归如果我们有数据集D{(xi,yi)},假如这些数据是连续的,那么我们将这些数据叫做回归,如果这些数据是离散的,那么我们叫这些数据是分类;在回归中我们最常见的就是线性回归。 案例:房屋价格与面积(x1)和卧室数量(x2)的关系模型表达式 : 这里的是估计参数,这里的x变量,后面我们会根据给定的样本来估计那些的值,最后来使模型做更好的预测。 向量的表示就是下面的那个(x0是恒等于1),这

2017-08-23 17:04:56 278

原创 hive中null值得查询

select count(CASE WHEN client_sex = ‘M’ THEN client_sex ELSE NULL END), count(CASE WHEN client_sex = ‘F’ THEN client_sex ELSE NULL END), count(CASE WHEN client_sex =’\N’ THEN 1 ELSE NULL END)

2017-08-22 15:32:52 254

原创 Java基础

基础什么是值传递,什么是引用传递; 值传递是将要传递的值作为一个副本传递给其他值:如int a=4; int b = a; 引用传递是引用对象的地址空间;Java中的数值传递是将数值赋给另一个对象,所以是一个值传递 而对象的实列是将对象的地址空间传递给引用对象,所以是一种引用传递线程的状态有那些,他们是如何转化的; ![状态图](http://img.blog.

2017-08-22 13:56:42 238

原创 Hadoop读写过程的源码分析

读取过程 进入open(Path f, final int bufferSize)方法,该方法属于DistributedFileSystem类,在返回结果的时候,创建了一个FileSystemLinkResolver对象,并实现了此类的两个抽象方法, 最后调用了resolve()方法,其中doCall()方法和next()方法都在resolve()方法里用到了,只是next()方法只是在r

2017-08-18 10:57:56 629

原创 SparkContext初始化图解与源码解析

源码解析: //standalone方式运行 case SPARK_REGEX(sparkUrl) => val scheduler = new TaskSchedulerImpl(sc) val masterUrls = sparkUrl.split(",").map("spark://" + _) val backe

2017-08-15 17:15:40 306

原创 创建RDD和RDD的持久化

创建RDD的方式第一种:通过并行化的方式创建RDDval arr = Array(1,2,3,4,5,6,7)val rdd = sc.paralleize(arr,4) //并行化程度是4//默认是根据集群的情况来设置分区,建议一个cpu分2-4个partition第二种方式:使用本地文件或者HDFS创建RDD textfile来读取文件创建RDD,默认情况下每一个Block创建一个part

2017-08-15 16:48:08 368

转载 Spark的数据倾斜和解决办法

数据倾斜的现象绝大多数的task运行的非常快,个别的task运行非常慢。正常运行的程序突然出现了OOM数据倾斜发生的原理数据倾斜的原理是在shuffle阶段产生的,在shuffle阶段,相同的key会被拉取到相同节点上的task去执行,比如join操作等等。大部分的key可能就是10万条,但是某一个key出现了100万条,所以导致大部分的key都执行完了,但是那个很多key的数据没有执行完毕,

2017-08-15 10:13:38 453 1

原创 spark的性能优化的方式

spark提供了两种序列化机制,Java的序列化和kryo序列化,使用kryo序列化占用更小的内存,但是kryo的缺点是:不是所有都能序列化,而且需要注册优化数据结构,比如优先使用数组和字符串,而不是集合对多次使用的rdd进行序列化和checkpoint()Java虚拟机的垃圾回收机制的调优,主要是调节新生代和老年代的大小和比例,通过配置参数来进行调节提高并行度 spark.default

2017-08-15 00:02:55 457

原创 SparkStreaming连接到kafka,防止重复消费

package com.manulife.mbps.behavior.data.streamimport java.util.Propertiesimport com.cloudera.com.amazonaws.util.json.JSONObjectimport com.manulife.mbps.behavior.common.utils.{IpUtil, ValidateUtil}imp

2017-08-14 11:00:21 4440 3

转载 操作系统知识点总结

操作系统

2017-08-12 14:33:31 367

原创 spark原理架构

架构图:

2017-08-11 16:37:58 191

原创 mapreduce的原理

yarn调度原理:说明: 客户端提交一个作业到Yarn上面的ResourceManager,ResourcerManager接收到请求后,为每一个job启动一个ApplicationMaster,AppcalitionMaster负责管理这个job,为这个job分配了applicationMaster后,由ApplicationMaster去请求ResourceManger申请资源,Reso

2017-08-11 16:35:10 343 2

原创 hive原理组件

Hive的服务端组件1. Driver组件:该组件包括:Compiler、Optimizer、Executor,它可以将Hive的编译、解析、优化转化为MapReduce任务提交给Hadoop1中的JobTracker或者是Hadoop2中的SourceManager来进行实际的执行相应的任务。2. MetaStore组件:存储着hive的元数据信息,将自己的元数据存储到了关系型数据库当中,支持的数

2017-08-11 15:34:31 1323

转载 hive查询与优化

优化今早的过滤数据,尽可能的减少数据在每个阶段的输入和输出,使用分区表时,要使用分区条件进行过滤可以使用中间表来完成一些复杂的操作join操作时,将小表放在join的左边union all的个数大于2,可以考虑使用inset into来优化根据数据的本身特点,在使用join 和group by的时候考虑数据倾斜的问题将小文件打包成一个大文件设置map和reduce的个数来减少task的

2017-08-11 15:25:22 333

原创 kafka存储机制

副本机制(replication)Kafka 通过多副本机制实现高可用,确保当Kafka集群中某一个Broker宕机的情况下,仍然可用。而 Kafka 的复制算法保证,如果Leader发生故障或者宕机,一个新的Leader会被重新选举出来,并对外提供服务,供客户端写入消息。Kafka 在同步的副本列表中选举一个副本为Leader。在Topic中,每个分区有一个预写式日志文件,每个分区都由一系列有序,

2017-08-11 14:51:25 512

原创 十大算法题

算法一:快速排序算法快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。快速排序使用分治法(Divide and conquer)策略来把一个串行(l

2017-08-10 23:29:56 237

原创 数据结构与算法之图计算

图算法,在实际的编程中还是会经常遇到的,最主要的就是两种图的遍历算法。举个例子,Java程序员必须掌握的垃圾回收(Garbage Collection,GC)里面,就非常依赖图算法。所以,在讨论GC之前,我们必须先把图的知识掌握了。图的概念在图中的数据元素通常称为结点,V是所有顶点的集合,E是所有边的集合。 如果两个顶点v, w,只能由v向w,而不能由w向v,那么我们就把这种情况叫做一个从 v

2017-08-10 15:43:30 1510

原创 Java设计模式-适配器模式和装饰模式

设计模式的概念:用通用的方法去解决抽象问题的一种方式就是设计模式;适配器模式例如适配器模式:需求是直接处理字符,但是,输入进来的却是编码的字节。我们希望有这么一个类,能自动解码并向我们提供字符读写的接口。这个类打通了字节处理与字符处理之间的堑沟。这个类就叫做适配器类。下面是它的类图:通过这个图,可以看到,我们期望的接口是Target类型的,这个类型定义了request这个方法。但是我们只有一个A

2017-08-10 10:49:24 187

转载 数据结构与算法之动态规划

动态规划的Java实现

2017-08-09 21:05:57 217

转载 数据结构与算法之动态规划和贪心

动态规划####动态规划######一、算法思想贪心法的基本思路:——从问题的某一个初始解出发逐步逼近给定的目标,以尽可能快的地求得更好的解。当达到某算法中的某一步不能再继续前进时,算法停止。 该算法存在问题: 1. 不能保证求得的最后解是最佳的; 2. 不能用来求最大或最小解问题; 3. 只能求满足某些约束条件的可行解的范围。实现该算法的过程:从问题的某一初始解出发; while 能朝给

2017-08-09 15:51:59 324

转载 数据结构与算法之各种排序算法的复杂度

排序法 平均时间 最差情形 稳定度 空间复杂度 备注 冒泡 O(n2) O(n2) 稳定 O(1) n小时较好 交换 O(n2) O(n2) 不稳定 O(1) n小时较好 选择 O(n2) O(n2) 不稳定 O(1) n小时较好 插入 O(n2) O(n2) 稳定 O(1) 大部分已排

2017-08-09 15:28:10 349

转载 数据结构与算法之二分查找

说明二分查找是一种比较有效的查找方式,折半查找的思想是,首先将数据有序排列(递增或者递减),查找过程中采用跳跃式查找,如果要找的元素值小 于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。通过一次比较,将查找区间缩小一半。 折半查找是一种高效的查找方法。它可以明显减少比较次数,提高查找效率。但是,折半查找的先决条件是查找表中的数据元素必须有序。优点:查找次数比较少,效率较高,经log2n

2017-08-09 15:10:27 268

转载 数据结构与算法之二叉树

二叉树二叉树中最重要的就是遍历,常见的遍历方式:前序遍历:先访问根节点,在访问左节点,最后访问右节点。如图的顺序是:10,6,4,8,14,12,16中序遍历:先访问左节点,在访问根节点,最后访问右节点。如图的顺序是:4,6,8,10,12,14,16后序遍历:先访问左节点,在访问右节点,最后访问根节点。如图的顺序是:4,8,6,12,16,14,10 推导已知前序、中序,可以唯一确定一个二

2017-08-09 14:27:30 191

转载 数据结构与算法之栈和队列

栈和队列特点栈是一种先进后出的结构,队列是一种先进先出的结构栈通常不考虑排序,需要O(n)的时间复杂度才能找到栈中最大或者最小的数据面试题用两个栈实现队列import java.util.Stack; //使用栈记得引用java.util,Stack包 public class Solution { Stack<Integer> stack1 = new Stack<Integer

2017-08-09 11:32:44 222

转载 数据结构与算法之链表

链表特点链表的结构简单,由指针将若干个节点连接起来形成链式结构。链表是一个动态的数据结构,我们无需知道链表的长度,只需要为新节点分配空间,然后调整指针的指向,确保新的节点加入到链表中即可。空间效率比数组高。链表的空间不是一次性分配完的,所以我们不需要保证链表的空间和数组的空间一样是连续的。如果我们需要查找一个元素,那么我们必须从开头一个一个查找,直到最后查找到的元素,所以时间复杂度为O(n)

2017-08-09 11:13:20 158

原创 数据结构算法之字符串

字符串特点字符串是由若干个字符组成,在c/c++中常常使用‘/0’字符作为结尾,这样很方便的为我们查找到字符串的最后一个字符。为了节省空间,c/c++常常将字符串单独放到一个内存空间中,当几个指针赋予相同的变量时,实际上他们会指向相同的地址空间面试题:替换空格实现一个函数将字符串中的空格替换成"%20"实现方式:方式一:如果是创建新的字符串,并在新的字符串上做替换,则我们需要我们为其分配足

2017-08-09 10:57:26 172

原创 数据结构与算法之数组

数组特点 1. 数组是一种最简单的数据结构,它占据一块连续的内存并且顺序存储数据,所以我们需要首先指定数组的大小; 2. 数组的空间效率不是很好,会有空闲的区域没有得到充分的应用; 3. 时间复杂度为O(1);数组实现简单哈希表将数组中的下标设置为hash的key,将数组中的值设置为哈希的值,这样就是实现了简单的hash表形成了一组k/v对。解决数组空间效率不高的问题设计了多种动态数组,比如

2017-08-09 10:44:21 3295 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除