The Future

Stay hungry,stay foolish.


  • 首页

  • 归档125

  • 分类15

  • 标签63

  • 干货

  • 关于

  • 搜索

wordcount数据去重案例

发表于 2018-03-25 | 更新于 2018-08-15 | 分类于 大数据 | 评论数: | 阅读次数:
1
2
3
4
5
6
7
8
9
10
11
12
13
package com.Practice.RemoveDupData;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
阅读全文 »

wordcount 互为好友对案例

发表于 2018-03-25 | 更新于 2018-08-15 | 分类于 大数据 | 评论数: | 阅读次数:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.Practice.SameFriend2;

import com.Practice.SameFriend.SameFriend;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
阅读全文 »

IDEA windows本地运行wordcount程序

发表于 2018-03-16 | 更新于 2018-08-15 | 分类于 大数据 | 评论数: | 阅读次数:

第一步创建maven项目

第二步创建WordCountDemo类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package com.wordcountModel;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

import java.io.IOException;
import java.util.StringTokenizer;
阅读全文 »

shell实现九九乘法表

发表于 2018-02-06 | 更新于 2018-08-15 | 分类于 Linux | 评论数: | 阅读次数:
1
2
3
4
5
6
7
8
for (( i=1;i<=9;i++ ))
do
for (( j=1;j<=i;j++ ))
do
echo -n "$j*$i=$[$j*$i] "
done
echo -e '\n'
done

配置163云源repo

发表于 2018-02-06 | 更新于 2018-08-15 | 分类于 Linux | 评论数: | 阅读次数:
  1. 进入yum配置文件目录
    cd /etc/yum.repos.d/

  2. 备份配置文件
    mv CentOS-Base.repo CentOS-Base.repo.bak

  3. 下载163的配置
    wget http://mirrors.163.com/.help/CentOS6- Base-163.repo,下载下来的文件名为 CentOS6- Base-163.repo

  4. 改名
    mv CentOS6-Base-163.repo CentOS-Base.repo

  5. 更新数据库
    yum update

Spring侵入式和非侵入式的区别

发表于 2018-02-04 | 更新于 2018-08-15 | 分类于 框架 | 评论数: | 阅读次数:

简单解释:

侵入式:使用者编写代码时,需要继承或者实现框架的类或接口,需要依赖框架。
非侵入式:使用者编写代码时,无需继承或者实现框架的类或接口,察觉不到框架的存在。


Spring框架是一种非侵入式的轻量级框架

###1.非侵入式的技术体现
允许在应用系统中自由选择和组装Spring框架的各个功能模块,并且不强制要求应用系统的类必须从Spring框架的系统API的某个类来继承或者实现某个接口。

2.如何实现非侵入式的设计目标的

1)应用反射机制,通过动态调用的方式来提供各方面的功能,建立核心组间BeanFactory
2)配合使用Spring框架中的BeanWrapper和BeanFactory组件类最终达到对象的实例创建和属性注入
3)优点:允许所开发出来的应用系统能够在不用的环境中自由移植,不需要修改应用系统中的核心功能实现的代码

常见SQL语句

发表于 2018-01-10 | 更新于 2018-08-15 | 分类于 Java | 评论数: | 阅读次数:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
create database employee
select * from emp;
delete from emp where empno=9999;
select ename,sal from emp ;
select * from emp where sal > 2000;
select * from emp where deptno = 20 and sal > 2000 ;
select * from emp where deptno = 20 or sal > 2000 ;
select * from emp where sal between 1000 and 3000 ;
select * from emp where empno = 7788 or empno = 7369 or empno=7521;
<!---more--->
-- in
select * from emp where empno in(7788,7369,7521);
-- DISTINCT 去重
select job from emp ;
select DISTINCT job from emp ;
-- 别名(字段,表)
select empno 员工编号,ename 员工姓名 from emp ;
select ename,sal,sal*1.05 新工资 from emp;

select ename,sal from emp e ;
select e.ename,e.sal from emp e ;
-- null 的判断
select * from emp where comm is not null ;

--模糊查询
--查询所有S打头的员工信息(模糊查询) % 代表0到多个字符
select * from emp where ename like 'S%';
--查询所有N结尾的
select * from emp where ename like '%N';
--查询所有包含S的
select * from emp where ename like '%S%';
--查询所有第二个字符为L的员工信息
select * from emp where ename like '__L%';

--排序 (默认升序 order by字段 [asc] | desc)
--默认 升序
select * from emp order by sal ;
--降序
select * from emp order by sal desc ;
--按照工资的降序排序,如果工资一样的,则按照empno的升序排序(用逗号)
select * from emp order by sal desc , empno ASC;
--限制结果查询(limit m,n) m代表起始索引,n代表记录的数目,limit 仅适用于MySQL
select * from emp limit 5,5;

--查询20号部门工资最高的员工的信息
select * from emp where deptno = 20 order by sal desc limit 0,1 ;

--计算3的15次方

--数学函数
select ABS(10); --绝对值
select CEIL(-12.3); --向上取整
select FLOOR(12.5); --向下取整
select ROUND(12.6); --四舍五入
select ROUNT(12.49,1);
select POW(3,3); --幂运算
select RAND(); --随机数[0,1)


--字符串函数
desc emp ;
select LENGTH(ename) from emp ; --获取字符串长度
select length('this is a apple');

select LOWER(ename) from emp ; --转换为小写
select UPPER('this is a page'); -- 转换大小写
select substr('aabbcc',1,2); -- 从1开始
select LPAD('smith',10,'*'); -- 开始字符串,总长度,padstr填充的字符
select RPAD('smith',10,'*'); -- 右填充
select TRIM(' smi th'); --去空格

-- 日期
select NOW();
select sysdate();
select CURRENT_DATE(); --当前日期
select current_time(); --当前时间
select YEAR('1998-09-09');
select MONTH('1998-09-09');
select DAY('1998-09-09');
select DATE_ADD('1998-09-09',INTERVAL 2 YEAR);
select * from student ;
alter table student add birthday date AFTER age;

-- 聚合函数
--count /sum/avg/max/min

-- 员工数(统计记录数)
select count(*) from emp ;
select count(1) from emp ;

-- 统计非空字段数目
select count(comm) from emp;
-- SUM
select sum(sal) from emp ;
-- AVG
select avg(sal) from emp ;
-- MIN
select min(sal) from emp ;
-- MAX
select max(sal) from emp ;


-- 分组函数 GROUP BY deptno
-- 每个部门的平均工资
-- group by 根据条件字段的值返回相应的记录数;但是在select字句中,只能出现聚合函数或者分组的条件字段。
select deptno, avg(sal) from emp GROUP BY deptno ;

-- 各个职位员工数? job
select job, count(*) from emp group by job;
-- 平均工资大于2000的部门的部门编号和平均工资? where 不能放group by之后,having可以,group by 和having 经常配套使用
-- 1.求出每个部门的平均工资
-- 2.平均工资>2000
select deptno,avg(sal) from emp GROUP BY deptno having avg(sal) > 2000;


-- where 和 having 的区别
-- 查询工资大于1500的每个部门的平均工资
select deptno, avg(sal) from emp where sal > 1500 GROUP BY deptno ;
-- 查询平均工资大于1500的部门编号和平均工资
select deptno,avg(sal) from emp GROUP BY deptno having avg(sal) > 1500 ;


-- 加密函数
select MD5('root');
select SHA('root');
select PASSWORD('root');

-- 外键约束: foreign key
create table classroom(
cid int PRIMARY key,
cname varchar(20)
);
alter table student add CONSTRAINT FK_CID FOREIGN KEY(cid) REFERENCES classroom(cid);

select * from emp ;


-- 高级查询
-- 多表查询
-- 查询的结果集分布于多张表
-- 查询员工编号为7788的员工姓名和部门名称。
-- 内连接 ,注意:1 内连接的结果集与连接顺序无关 2 在多张表中都出现的数据才会出现在内连接的结果集中
select e.ename,d.dname from emp e ,dept d where e.empno = 7788 and e.deptno = d.deptno;
-- inner join ...on....
select ename,dname from emp inner join dept on emp.deptno = dept.deptno ;
-- inner join ...using... (局限,当deptno不同时)
select ename,dname from emp inner join dept using(deptno)

Java集合常见面试题

发表于 2017-12-31 | 更新于 2018-08-15 | 分类于 Java | 评论数: | 阅读次数:

 Java集合框架是最常被问到的Java面试问题,要理解Java技术强大特性就有必要掌握集合框架。这里有一些实用问题,常在核心Java面试中问到。

  1. 什么是Java集合API
      Java集合框架API是用来表示和操作集合的统一框架,它包含接口、实现类、以及帮助程序员完成一些编程的算法。简言之,API在上层完成以下几件事:
      ● 编程更加省力,提高城程序速度和代码质量
      ● 非关联的API提高互操作性
      ● 节省学习使用新API成本
      ● 节省设计新API的时间
      ● 鼓励、促进软件重用
      具体来说,有6个集合接口,最基本的是Collection接口,由三个接口Set、List、SortedSet继承,另外两个接口是Map、SortedMap,这两个接口不继承Collection,表示映射而不是真正的集合。
    阅读全文 »

Java集合体系结构以及集合和数组的区别

发表于 2017-12-31 | 更新于 2018-08-15 | 分类于 Java | 评论数: | 阅读次数:

数组和集合的定义
一、数组

数组是java语言内置的数据类型,他是一个线性的序列,所有可以快速访问其他的元素,数组和其他语言不同,当你创建了一个数组时,他的容量是不变的,而且在生命周期也是不能改变的,还有JAVA数组会做边界检查,如果发现有越界现象,会报RuntimeException异常错误,当然检查边界会以效率为代价。
二、集合

JAVA还提供其他集合,list,map,set,他们处理对象的时候就好像这些对象没有自己的类型一样,而是直接归根于Object,这样只需要创建一个集合,把对象放进去,取出时转换成自己的类型就行了。
三、数组和集合的区别

阅读全文 »

数据抽象

发表于 2017-12-20 | 更新于 2018-08-15 | 分类于 干货 | 评论数: | 阅读次数:

概念

数据抽象结构:对现实世界的一种抽象从实际的人、物、事和概念中抽取所关心的共同特性,忽略非本质的细节,把这些特性用各种概念精确地加以描述这些概念组成了某种模型。

三种常用抽象

分类(Classification)

定义某一类概念作为现实世界中一组对象的类型,这些对象具有某些共同的特性和行为,它抽象了对象值和型之间的“is member of”的语义,在E-R模型中,实体型就是这种抽象。

聚集(Aggregation)

定义某一类型的组成成分,它抽象了对象内部类型和成分之间“is part of”的语义,在E-R模型中若干属性的聚集组成了实体型,就是这种抽象。

阅读全文 »

1…8910…13
Daniel X

Daniel X

專注于大数据技術,分享干货
125 日志
15 分类
63 标签
GitHub E-mail Weibo QQ
粤ICP备18110871号 © 2017 – 2021 dudefu
0%