自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

bitcarmanlee的博客

https://github.com/bitcarmanlee/easy-algorithm-interview-and-practice 同步更新,欢迎star

  • 博客(44)
  • 收藏
  • 关注

原创 count(distinct) 与group by 浅析

在传统关系型数据库中,group by与count(distinct)都是很常见的操作。count(distinct colA)就是将colA中所有出现过的不同值取出来,相信只要接触过数据库的同学都能明白什么意思。count(distinct colA)的操作也可以用group by的方式完成,具体代码如下:select count(distinct colA) from table1;selec

2016-04-29 12:43:19 34776 5

转载 Git常用命令

1年多以前从SVN阵营转向Git,SVN用的最多就是图行化工具,刚转到Git时也是喜欢用图形化工具和XCode自带Git管理工具的,但是在使用XCode自带Git管理工具出过几次问题后,逐渐转向使用命令。现在基本上是使用SourceTree来做一些浏览性的工作比如commit改动、分支走向等,其他的基本上使用命令来操作。Git的好我就不多说,先看下面一张图了解一下Git的一些名词,在看看常用的Git

2016-04-28 22:23:48 683

原创 BrightHouse存储引擎

mysql支持多种存储引擎存储。这样,在处理不同类型数据的时候,可以针对不同业务场景,提供更为高效,灵活的方式。mysql常见的存储引擎包括:MyISAM,InnoDB(最为常用的两种),MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE等。现在大数据环境下,一般都使用hive作离线查询,hue则是hi

2016-04-28 18:40:29 2552

原创 逻辑回归与线性回归

相同点: 两者都是广义线性模型GLM(Generalized linear models)不同点: 1.线性回归要求因变量(假设为Y)是连续数值变量,而logistic回归要求因变量是离散的类型变量,例如最常见的二分类问题,1代表正样本,0代表负样本 2.线性回归要求自变量服从正态分布,logistic回归对变量的分布则没有要求 3.线性回归要求自变量与因变量有线性关系,Logistic回归

2016-04-27 18:01:29 2907 1

原创 hive表加载数据的不同方式

1.建表时候指定location如果数据在hdfs上存好,并且是结构化的数据。最常见的就是按天增量的结构化的日志或者计算结果,此时这部门数据基本不用后期维护,只需要后台程序每天正常运行。这样,在建表的时候直接用location指定即可。create external table rpt_search_flow_experiment(date_num String,flowId string,pvl

2016-04-27 14:50:56 2658

转载 java class类

java中实例化Class类对象的三种方式: 第一种、通过forName(); 第二种、类.class 第三种、对象.getClass()测试案例:package com.lfl.demo;public class GetClassDemo1 { public static void main(String[] args) { Class<?> c1 = null;// ?是泛型中的通配

2016-04-26 22:55:34 729

原创 java匿名内部类

匿名内部类也就是没有名字的内部类 正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写 但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口实例1:不使用匿名内部类来实现抽象方法abstract class Person { public abstract void eat();}class Child extends Person { public v

2016-04-26 22:28:28 493

转载 java内部类详解

内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类如同一个人是由大脑、肢体、器官等身体结果组成,而内部类相当于其中的某个器官之一,例如心脏:它也有自己的属性和行为(血液、跳动)显然,此处不能单方面用属性或者方法表示一个心脏,而需要一个类而心脏又在人体当中,正如同是内部类在外部内当中实例1:内部类的基本结构//外部类class Out { private int age = 1

2016-04-26 22:15:39 622

原创 hive udf开发超详细手把手教程

关于hive的udf介绍,就不多啰嗦了。网上的教程一抓一大把,也可以上apache的官网去查阅相关资料,我就省了翻译的时间了。重点给大家带来干货,手把手教会你怎样开发一个udf函数,已经如何部署到服务器上的hive环境中运行。用最简单的话来说,就是教大家怎么让自己开发的udf跑起来。。。项目需求做数据挖掘项目中,常见的需求之一就是分析节假日订单跟平时订单的区别。于是,我们需要统计节假日订单的分布情况

2016-04-26 11:46:34 41707 3

原创 eclipse mac常用快捷键

从windows切换到mac下以后,eclipse的快捷键是个大问题,经常为了一个快捷键想半天。特意整理了以下快捷键1.command Command+1 快速修复 Command+d 删除当前行 Command+Option+↓ 复制当前行到下一行 Comma

2016-04-25 20:22:37 5763

原创 java double转string

java中,double转string可以用Double.toString(d)的方式。但是,这种方式有隐藏的坑,请大家看仔细了:package hello;public class DoubleToString { public static void test1(double dou) { String dou_str = Double.toString(dou);

2016-04-25 20:00:06 40396 1

原创 稀疏向量计算优化小结

在各种算法中,向量计算是最常用的一种操作之一。传统的向量计算,学过中学数学的同学也能明白怎么做。但在现在的大数据环境下,数据一般都会比较稀疏,因此稀疏向量的计算,跟普通向量计算,还是存在一些不同。首先,我们定义两个向量:

2016-04-21 21:56:28 7617

转载 java 读取配置文件的几种方法

比如我们有以下目录|--project |--src |--javaapplication |--Test.java |--file1.txt |--file2.txt |--build |--javaapplication |--Test.class

2016-04-21 21:39:30 1861

转载 linux 守护进程

Linux 守护进程概述 Linux Daemon(守护进程)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。它不需要用户输入就能运行而且提供某种服务,不是对整个系统就是对某个用户程序提供服务。Linux系统的大多数服务器就是通过守护进程实现的。常见的守护进程包括系统日志进程syslogd、 web服务器httpd、邮件服务器sendmail和数据库服

2016-04-21 21:24:41 887

原创 linux 统计文件的个数

查看文件夹下的文件个数(当前目录与子目录)find ./ -type f | wc -lls -lR | grep "^-" | wc -l如果只是查找当前文件夹不递归find . -maxdepth 1 -type d | wc -l

2016-04-21 21:23:09 791

原创 linux 中文乱码

下来搜狐实验室一些新闻语料做分析,结果打开发现其他标签都正常,就<content><content>标签内容不正常,全是乱码。因此估计十有八九是编码问题。上网找了下linux里怎么解决中文乱码的问题。其实挺简单,用iconv命令就可以轻松搞定。linux里默认的字符集编码方式是utf-8,而下载的内容的编码格式应该是gbk,所以用如下命令:cat news.allsites.1120806.txt

2016-04-19 16:05:19 1201

原创 python 浮点数精确运算解决方案

浮点数误差浮点数一个普遍的问题就是在计算机的世界中,浮点数并不能准确地表示十进制。并且,即便是最简单的数学运算,也会带来不可控制的后果。因为,在计算机的世界中只认识0与1。>>> x = 4.20>>> y = 2.10>>> x + y6.3000000000000007>>> (x+y) == 6.3False>>> x = 1.2>>> y = 2.3>>> x + y3.5

2016-04-18 14:50:32 33042

原创 logistic回归详解(二):损失函数(cost function)详解

有监督学习机器学习分为有监督学习,无监督学习,半监督学习,强化学习。对于逻辑回归来说,就是一种典型的有监督学习。 既然是有监督学习,训练集自然可以用如下方式表述: {(x1,y1),(x2,y2),⋯,(xm,ym)}\{(x^1,y^1),(x^2,y^2),\cdots,(x^m,y^m)\}对于这m个训练样本,每个样本本身有n维特征。再加上一个偏置项x0x_0, 则每个样本包含n+1维特征

2016-04-15 23:08:51 155685 21

原创 logistic回归详解一:为什么要使用logistic函数

从线性分类器谈起  给定一些数据集合,他们分别属于两个不同的类别。例如对于广告数据来说,是典型的二分类问题,一般将被点击的数据称为正样本,没被点击的数据称为负样本。现在我们要找到一个线性分类器,将这些数据分为两类(当然实际情况中,广告数据特别复杂,不可能用一个线性分类器区分)。用X表示样本数据,Y表示样本类别(例如1与-1,或者1与0)。我们线性分类器的目的,就是找到一个超平面(Hyperplan)

2016-04-14 19:55:27 67148 11

转载 使用消息队列的十大理由

过去几年中,我们一直在使用、构建和宣传消息队列,我们认为它们是很令人敬畏的,这也不是什么秘密。我们相信对任何架构或应用来说,消息队列都是一个至关重要的组件,下面是十个理由:解耦 在项目启动之初来预测将来项目会碰到什么需求,是极其困难的。消息队列在处理过程中间插入了一个隐含的、基于数据的接口层,两边的处理过程都要实现这一接口。这允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。

2016-04-14 17:07:58 1950

原创 svm多分类器详解

SVM是一种典型的两类分类器,即它只回答属于正类还是负类的问题。而现实中要解决的问题,往往是多类的问题(少部分例外,例如垃圾邮件过滤,就只需要确定“是”还是“不是”垃圾邮件),比如文本分类,比如数字识别。如何由两类分类器得到多类分类器,就是一个值得研究的问题。  其中一种一劳永逸的方法,就是真的一次性考虑所有样本,并求解一个多目标函数的优化问题,一次性得到多个分类面。多个超平面把空间划分为多个区域,

2016-04-13 21:33:26 16751

转载 Python模块受欢迎排行榜Top200

这是最受欢迎的Python模块的前200名, 评比的依据是模块在github上开源Python项目中被使用的次数. 看看有没有跌破你的眼镜!名次 模块名称 被使用项目数 1 sys 7858 2 os 6983 3 re 5663 4 time 5268 5 random 3339 6 datetime 3310 7 setupto

2016-04-13 21:14:05 1143

原创 sed 常用命令

测试文件:filetest aaa bbb ccc ddd eee fff 111 222 3331.在第一行中插入一行(即在文件头插入一行,经常用于描述文件字段信息)sed -i '1i no1\tno2\tno3' filetest或者:sed -i '1 i\no1\tno2\tno3' filetest都可以在满足需求2.在最后一行追加一行sed -i '$a 1\t2\t3' fil

2016-04-13 18:50:28 941

转载 MySql explain命令详解

一.语法explain < table_name >例如: explain select * from t3 where id=3952602;二.explain输出解释+—-+————-+——-+——-+——————-+———+———+——-+——+——-+ | id | select_type | table | type | possible_keys | key | ke

2016-04-12 14:36:35 590

转载 MySql索引原理及慢查询优化

本文转载自美团点评技术团队  MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题

2016-04-12 10:03:53 870

转载 RFM模型分析

会员的价值体现在持续不断的为企业带来稳定的销售和利润,同时也为企业策略的制定提供数据支持。所以零售企业总是想尽一切办法去吸引更多的人成为会员,并且尽可能提高他们的忠诚度。忠诚度高的顾客表现为经常光顾购买,有较高的价格忍耐度,愿意支付更高的价格,也愿意向其他人推荐,对品牌满意度较高等。会员忠诚度高不一定会员价值就高,还得看他的实际消费金额,也就是消费力。忠诚度高、消费力强的顾客才是企业最优质的会员顾客

2016-04-11 17:13:37 9926

转载 利用RFM模型做电商客户价值分析

客户细分是客户关系管理的一个主要的组成部分,本文尝试以电商企业为研究对象根据其客户特点,提出了一种基于客户价值分析RFM 模型,从而对客户进行分类,并对此结果进行动态的客户分析,以达到对不同的客户采取不同的客户服务的效果。一、RFM模型介绍1.RFM模型的基本原理在RFM模式中,R(Recency)表示客户最近一次购买的时间有多远,F(Frequency)表示客户在最近一段时间内购买的次数,M (

2016-04-11 16:51:59 16048

转载 sublime实用快捷键 mac版

打开/前往 ⌘T 前往文件 ⌘⌃P 前往项目 ⌘R 前往 method ⌘⇧P 命令提示 ⌃G 前往行 ⌘KB 开关侧栏 ⌃ ` python 控制台 ⌘⇧N 新建窗口编辑 ⌘L 选择行 (重复按下将下一行加入选择) ⌘D 选择词 (重复按下时多重选择相同的词进行多重编辑) ⌃⇧M 选择括号内的内容 ⌘⇧↩ 在

2016-04-11 12:10:41 21327

原创 sublime批量添加注释

mac中,sublime全部查找替换的快捷键为option + cmd + f 现在要想批量在行首添加注释,可以有以下操作: 先按option + cmd + f,在find what中输入 ^,查找到所有的行首,然后就可以在行首批量添加。 同理,要想在行末批量添加, 先按option + cmd + f,在find what中输入 $,查找到所有的行尾,然后就可以在行尾批量添加。需要注意的是

2016-04-11 12:05:42 4844

原创 python 正则表达式 \b 大坑

在所有介绍正则表达式元字符的资料中,都会提到\b,表示单词边界的意思。在python里写了一段小测试代码测试一下\b:#!/usr/bin/env pythonimport redef t1(): pattern = re.compile("\bprint\b") search = pattern.search('aaa print 123 hello') if search

2016-04-10 23:26:41 6378 5

原创 hive 正则表达式详解

hive中的正则表达式还是很强大的。数据工作者平时也离不开正则表达式。对此,特意做了个hive正则表达式的小结。所有代码都经过亲测,正常运行。1.regexp语法: A REGEXP B 操作类型: strings 描述: 功能与RLIKE相同select count(*) from olap_b_dw_hotelorder_f where create_date_wid not regexp

2016-04-09 18:56:22 95075 1

转载 VIM 高效操作

这篇教程写了在不同工作模式下使用VIM的一些基本技巧 – 即插入模式(insert mode), 命令模式(command mode), 存取文件等。目的是帮助刚刚接触VIM的新手更加有效率的使用这个出色的编辑器。说明:在这篇文章里面,代表Ctrl + X – 就是按住Ctrl键然后再按X。而且你可以在很多情况下使用 :help command 来获得大部分命令的帮助,这个是VIM的内部帮助文件命令

2016-04-08 22:37:11 1166

原创 distinct 多列详解

1.distinct 单列select distinct(a) from tableA;这个比较简单,没什么可说的。2.distinct多列select distinct a,b,c from tableA;注意此时是将a,b,c三列所有不同的组合全部列出来,而不仅仅只是distinct a 相当于以下语句: select a,b,c from tableA group by a,b,c3.另外一

2016-04-08 22:09:41 81063 4

转载 oracle type rowtype详解

1. 使用%TYPE在许多情况下,PL/SQL变量可以用来存储在数据库表中的数据。在这种情况下,变量应该拥有与表列相同的类型。例如,students表的first_name列的类型为VARCHAR2(20),我们可以按照下述方式声明一个变量:DECLAREv_FirstName VARCHAR2(20);但是如果first_name列的定义改变了会发生什么(比如说表改变了,first_name现在

2016-04-08 21:57:59 1718

原创 oracle 游标详解

游标是映射在结果集中一行数据上的位置实体,有了游标,用户就可以访问结果集中的任意一行数据。将游标放置到某行后,即可对该行数据进行操作,例如提取当前行的数据,当前行的某些字段等。在大多数时候我们在设计程序的时候都遵循下面的步骤: 1、打开游标 2、开始循环 3、从游标中取值 4、检查那一行被返回 5、处理 6、关闭循环 7、关闭游标 DECLARE –定义记录类型的变量

2016-04-08 21:51:17 519

原创 awk去重

awk的基本命令格式 awk ‘pattern{action}’ 省略action时,默认action是{print},如awk ‘1’就是awk ‘1{print}’利用数组去重 方法一:awk '!a[$3]++' file以数据为例: 1 2 3 1 2 3 1 2 4 1 2 5awk处理第一行时: 先读取a[3]值再自增,a[3]值再自增,a[3]即a[3]值为空(0),即为a

2016-04-07 22:22:44 4803

原创 awk去除行首行尾空格

简单明了,实现strip()函数的功能function ltrim(s) { sub(/^[ \t\r\n]+/, "", s); return s }function rtrim(s) { sub(/[ \t\r\n]+$/, "", s); return s }function trim(s) { return rtrim(ltrim(s)); }BEGIN{ FS=","

2016-04-07 22:20:40 17215

转载 MapReduce Shuffle详解

Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方。要想理解MapReduce,Shuffle是必须要了解的。我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混。前段时间在做MapReduce job 性能调优的工作,需要深入代码研究MapReduce的运行机制,这才对Shuffle探了个究竟。考虑到之前我在看相关资料而看不懂时很恼火,所以在这里我尽

2016-04-07 22:06:36 755

转载 linux top命令VIRT,RES,SHR,DATA的含义

VIRT:virtual memory usage 虚拟内存1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等 2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量RES:resident memory usage 常驻内存1、进程当前使用的内存大小,但不包括swap out 2、包含其他进程的共享 3、如果申请100m的内存,实际使用10

2016-04-07 11:12:31 1990

原创 vim 查找相同行 删除向同行

vim 查找相同的两行 思路:先将两行排序,然后查找前一行等于后一行的内容:sort/^\(.\+\)$\n\1^(.+)$\n表示一整行的模式,\1表示第一个组vim删除的行 给出vim wiki上的两种解法,链接如下: (Removing_duplicate_lines%20wiki”>http://vim.wikia.com/wiki/Uniq-_Removing_duplicate_

2016-04-06 18:56:54 5520

空空如也

空空如也

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

TA关注的人

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