HiveQL 常用操作

hive操作insert时,accepted状态, return code 2 from org.apache.hadoop.hive.ql.exec.mr.Map...问题处理 hive (mydb)> insert into custs(id,name) values(1,'LiLei'); Query ID = grid_20190423164217_fc3f0961-0a15-430c-9fce-78999c909f02 Total jobs = 3 Launching Job 1 out of 3 Number of reduce tasks determi... 阅读详情

HiveQL 常用操作

 

1.   创建表

Create Table dept (deptno Int,dname String) Row format delimited fields terminated By'\t';
Create
Table emp (empno Int,ename String,mgr Int,sal Float,deptno Int) Row format delimited fields terminated By'\t'
;
Create
Table salgrade (grade Int,losal Int,hisal Int) Row format delimited fields terminated By'\t';

 

Hive中分托管表和外部表,以上是托管表,托管表在在数据仓库目录下,由hive管理。外部表的数据在指定位置,不在hive数据仓库中,只在元数据库中注册。

 

创建外部表:

Create External Table ext(Id Int,Name String);

 

2.   导入数据

hive>load Data Local inpath '/home/licz/data/dept' overwrite Into Table dept;

Copying data from file:/home/licz/data/dept

Copying file: file:/home/licz/data/dept

Loading data to table default.dept

Deleted hdfs://gc:9000/user/hive/warehouse/dept

Table default.dept stats: [num_partitions: 0, num_files: 1, num_rows: 0, total_size: 50, raw_data_size: 0]

OK

Time taken: 1.547 seconds

hive>select * from dept;

OK

10     ACCOUNTING

20     RESEARCH

30     SALES

40     OPERATIONS

Time taken: 0.184 seconds, Fetched: 4 row(s)

 

load Data Local inpath '/home/licz/data/emp' overwrite Into Table emp;
load Data Local inpath '/home/licz/data/salgrade' overwrite Into Table salgrade;

 

如果导入的数据在HDFS上,则不需要加local关键字

 

--查看托管表位置

[licz@gc data]$ hadoop dfs -ls /user/hive/warehouse

Found 4 items

drwxr-xr-x  - licz supergroup          0 2013-12-16 13:44 /user/hive/warehouse/dept

drwxr-xr-x  - licz supergroup          0 2013-12-16 13:42 /user/hive/warehouse/emp

drwxr-xr-x  - licz supergroup          0 2013-12-16 13:07 /user/hive/warehouse/ext

drwxr-xr-x  - licz supergroup          0 2013-12-16 13:38 /user/hive/warehouse/salgrade

 

Hive导入数据时只是复制和移动文件,并不对数据模式进行检查,所以下面操作同样也成功了。这是Hive采用的“schema on read”加载方式,可以提高加载数据的效率。

hive> load Data Local inpath '/home/licz/data/salgrade' overwrite Into Tableemp;    

Copying data from file:/home/licz/data/salgrade

Copying file: file:/home/licz/data/salgrade

Loading data to table default.emp

Deleted hdfs://gc:9000/user/hive/warehouse/emp

Table default.emp stats: [num_partitions: 0, num_files: 1, num_rows: 0, total_size: 59, raw_data_size: 0]

OK

Time taken: 2.118 seconds

hive> select * from emp;

OK

1      700     1200    NULL    NULL

2      1201    1400    NULL    NULL

3      1401    2000    NULL    NULL

4      2001    3000    NULL    NULL

5      3001    9999    NULL    NULL

 

尽管导入数据和表结构不一致,还是导入成功了

 

 

3.   分区

--创建分区表

//注意:table中的列不能和partition中的列重合了

hive> Create Table ptest(ename String) partitioned By (deptno Int) Row format delimited fields terminated By '\t';

OK

Time taken: 0.271 seconds

hive> desc ptest;

OK

ename                  string                  None               

deptno                 int                     None               

                

# Partition Information         

# col_name             data_type               comment            

                

deptno                 int                     None               

Time taken: 0.231 seconds, Fetched: 7 row(s)

 

导入分区表数据

hive>load Data Local inpath '/home/licz/data/ptest20' overwrite Into Table ptest Partition(deptno=20);

Copying data from file:/home/licz/data/ptest20

Copying file: file:/home/licz/data/ptest20

Loading data to table default.ptest partition (deptno=20)

Deleted hdfs://gc:9000/user/hive/warehouse/ptest/deptno=20

Partition default.ptest{deptno=20} stats: [num_files: 1, num_rows: 0, total_size: 29, raw_data_size: 0]

Table default.ptest stats: [num_partitions: 1, num_files: 1, num_rows: 0, total_size: 29, raw_data_size: 0]

OK

Time taken: 2.209 seconds

hive> load Data Local inpath '/home/licz/data/ptest30' Into Table ptest Partition(deptno=30);

hive> select * from ptest;

OK

SMITH  20

JONES  20

SCOTT  20

ADAMS  20

FORD   20

ALLEN  30

WARD   30

MARTIN  30

BLAKE  30

TURNER 30

JAMES  30

Time taken: 0.364 seconds, Fetched: 11 row(s)

 

创建分区后,会在相应的目录下建立以分区命名的目录,目录下是分区的数据

hive> dfs -ls /user/hive/warehouse/ptest;

Found 2 items

drwxr-xr-x  - licz supergroup          0 2013-12-16 14:17 /user/hive/warehouse/ptest/deptno=20

drwxr-xr-x  - licz supergroup          0 2013-12-16 14:33 /user/hive/warehouse/ptest/deptno=30

hive> dfs -ls /user/hive/warehouse/ptest/deptno=20;

Found 1 items

-rw-r--r--  2 licz supergroup         29 2013-12-16 14:17 /user/hive/warehouse/ptest/deptno=20/ptest20

hive> dfs -cat /user/hive/warehouse/ptest/deptno=20/ptest20;

SMITH

JONES

SCOTT

ADAMS

FORD

 

对分区进行查询

hive> select ename from ptest where deptno=20;

Total MapReduce jobs = 1

Launching Job 1 out of 1

Number of reduce tasks is set to 0 since there's no reduce operator

Starting Job = job_201312111332_0005, Tracking URL = http://gc:50030/jobdetails.jsp?jobid=job_201312111332_0005

Kill Command = /home/licz/hadoop-1.2.1/libexec/../bin/hadoop job -kill job_201312111332_0005

Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 0

2013-12-16 14:27:58,298 Stage-1 map = 0%, reduce = 0%

……

MapReduce Total cumulative CPU time: 3 seconds 110 msec

Ended Job = job_201312111332_0005

MapReduce Jobs Launched:

Job 0: Map: 1  Cumulative CPU: 3.11 sec   HDFS Read: 241 HDFS Write: 29 SUCCESS

Total MapReduce CPU Time Spent: 3 seconds 110 msec

OK

SMITH

JONES

SCOTT

ADAMS

FORD

Time taken: 61.54 seconds, Fetched: 5 row(s)

 

显示分区

hive> show partitions ptest;

OK

deptno=20

deptno=30

Time taken: 0.221 seconds, Fetched: 2 row(s)

 

对分区插入数据

hive> Insert overwrite Table ptest Partition(deptno=20) Select ename From emp Where deptno=20;

Total MapReduce jobs = 3

Launching Job 1 out of 3

……

5 Rows loaded to ptest

MapReduce Jobs Launched:

Job 0: Map: 1  Cumulative CPU: 3.24 sec   HDFS Read: 568 HDFS Write: 29 SUCCESS

Total MapReduce CPU Time Spent: 3 seconds 240 msec

OK

Time taken: 68.34 seconds

 

4.   桶

可以的表或分区组织成桶,桶是用组织特定字段把行分开,每个桶对应一个reduce操作。在建立桶之前,需要设置hive.enforce.bucketing属性为true,使hive能识别桶。

hive> Create Table bemp(empno Int,ename String,mgr Int,sal Float,deptno Int)

   > clustered By (empno) Into 3 buckets

   > Row format delimited fields terminated By '\t';

OK

 

向桶中插入数据,按empno分了三个桶,在插入数据时对应三个reduce操作,输出三个文件

hive> Insert overwrite Table bemp Select * From emp;

Total MapReduce jobs = 1

Launching Job 1 out of 1

Number of reduce tasks determined at compile time: 3

In order to change the average load for a reducer (in bytes):

 set hive.exec.reducers.bytes.per.reducer=<number>

In order to limit the maximum number of reducers:

 set hive.exec.reducers.max=<number>

In order to set a constant number of reducers:

 set mapred.reduce.tasks=<number>

Starting Job = job_201312111332_0011, Tracking URL = http://gc:50030/jobdetails.jsp?jobid=job_201312111332_0011

Kill Command = /home/licz/hadoop-1.2.1/libexec/../bin/hadoop job -kill job_201312111332_0011

Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 3

2013-12-17 01:14:04,048 Stage-1 map = 0%, reduce = 0%

2013-12-17 01:14:29,182 Stage-1 map = 100%, reduce = 0%, Cumulative CPU 8.5 sec

……

Ended Job = job_201312111332_0011

Loading data to table default.bemp

Deleted hdfs://gc:9000/user/hive/warehouse/bemp

Table default.bemp stats: [num_partitions: 0, num_files: 3, num_rows: 0, total_size: 360, raw_data_size: 0]

14 Rows loaded to bemp

MapReduce Jobs Launched:

Job 0: Map: 1 Reduce: 3   Cumulative CPU: 42.03 sec   HDFS Read: 568 HDFS Write: 360 SUCCESS

Total MapReduce CPU Time Spent: 42 seconds 30 msec

OK

Time taken: 116.398 seconds

 

查看数据仓库下的桶目录,三个桶对应三个文件

hive> dfs -ls /user/hive/warehouse/bemp

   > ;

Found 3 items

-rw-r--r--  2 licz supergroup        177 2013-12-17 01:15 /user/hive/warehouse/bemp/000000_0

-rw-r--r--  2 licz supergroup        103 2013-12-17 01:15 /user/hive/warehouse/bemp/000001_0

-rw-r--r--  2 licz supergroup         80 2013-12-17 01:15 /user/hive/warehouse/bemp/000002_0

hive> dfs -ls /user/hive/warehouse/bemp;

Found 3 items

-rw-r--r--  2 licz supergroup        177 2013-12-17 01:15 /user/hive/warehouse/bemp/000000_0

-rw-r--r--  2 licz supergroup        103 2013-12-17 01:15 /user/hive/warehouse/bemp/000001_0

-rw-r--r--  2 licz supergroup         80 2013-12-17 01:15 /user/hive/warehouse/bemp/000002_0

hive> dfs -ls /user/hive/warehouse/bemp/000000_0;

Found 1 items

-rw-r--r--  2 licz supergroup        177 2013-12-17 01:15 /user/hive/warehouse/bemp/000000_0

 

Hive使用对分桶所用的值进行hash,并用hash结果除以桶的个数取余运算的方式来分桶,保证每个桶里都有数据,但每个桶中的记录不一定相等。

hive> dfs -cat /user/hive/warehouse/bemp/000000_0;

7788   SCOTT   7566    3000.0  20

7839   KING    \N      5000.0  10

7521   WARD    7698    1250.0  30

7566   JONES   7839    2975.0  20

7902   FORD    7566    3000.0  20

7698   BLAKE   7839    2850.0  30

7782   CLARK   7839    2450.0  10

hive> dfs -cat /user/hive/warehouse/bemp/000001_0;

7369   SMITH   7902    800.0   20

7654   MARTIN  7698    1250.0  30

7876   ADAMS   7788    1100.0  20

7900   JAMES   7698    950.0   30

hive> dfs -cat /user/hive/warehouse/bemp/000002_0;

7934   MILLER  7782    1300.0  10

7844   TURNER  7698    1500.0  30

7499   ALLEN   7698    1600.0  30

 

分桶可以获得比分区更高的查询效率,同时分权也便于对全部数据数据进行采样,如下取样操作

hive> select * from bemp tablesample(bucket 1 out of 3 on empno);

Total MapReduce jobs = 1

Launching Job 1 out of 1

Number of reduce tasks is set to 0 since there's no reduce operator

……

Total MapReduce CPU Time Spent: 6 seconds 110 msec

OK

7788   SCOTT   7566    3000.0  20

7839   KING    NULL    5000.0  10

7521   WARD    7698    1250.0  30

7566   JONES   7839    2975.0  20

7902   FORD    7566    3000.0  20

7698   BLAKE   7839    2850.0  30

7782   CLARK   7839    2450.0  10

Time taken: 57.213 seconds, Fetched: 7 row(s)

 

 

 

5.   多表插入

多表插入是指使用一条语句,把读取的同一份数据插入到不同的表中,只需要扫描一遍数据即可完成所有表的插入操作,效率很高。

hive> Create Table mutil1 As Select deptno,ename From emp;

hive> Create Table mutil2 Like mutil1;

OK

Time taken: 0.285 seconds

 

hive> From emp

   > Insert overwrite Table mutil1 Select deptno,ename

> Insert overwrite Table mutil2 Select deptno,Count(ename) Group By deptno;

 

hive> select * from mutil1;

OK

20     SMITH

30     ALLEN

30     WARD

20     JONES

30     MARTIN

30     BLAKE

10     CLARK

20     SCOTT

10     KING

30     TURNER

20     ADAMS

30     JAMES

20     FORD

10     MILLER

Time taken: 0.502 seconds, Fetched: 14 row(s)

hive> select * from mutil2;

OK

10     3

20     5

30     6

Time taken: 0.149 seconds, Fetched: 3 row(s)

 

6.   修改表

重命名、增加字段

hive> alter table mutil1 rename to mutil01;

hive> alter table mutil01 add columns(sal int);

OK

Time taken: 0.262 seconds

hive> desc mutil01;

OK

deptno                 int                     None               

ename                  string                  None               

sal                    int                     None               

Time taken: 0.154 seconds, Fetched: 3 row(s)

 

是不是跟PL/SQL一样!!

 

7.   删除表

 

hive> drop table mutil01;

 

如果只删除表中的数据,保留表名可以HDFS上删除数据文件即可,如下:

hive> select * from mutil2;

OK

10     3

20     5

30     6

hive> dfs -ls /user/hive/warehouse/mutil2;

Found 1 items

-rw-r--r--  2 licz supergroup         15 2013-12-17 02:34 /user/hive/warehouse/mutil2/000000_0

hive> dfs -cat /user/hive/warehouse/mutil2/000000_0;

103

205

306

hive> dfs -rmr /user/hive/warehouse/mutil2/*;

Deleted hdfs://gc:9000/user/hive/warehouse/mutil2/000000_0

hive> select * from mutil2;

OK

Time taken: 0.269 seconds

hive>

 

注意:对于托管表,drop操作会把元数据和数据文件都删除掉;对于外部表,只是删除元数据。

 

8.   连接

Hive的连接操作和PL/SQL的内连接、左外连接、右外连接、全外连接基本上是一样的。

hive> select dept.*,emp.* from dept join emp on dept.deptno=emp.deptno;

10     ACCOUNTING      7839    KING    NULL    5000.0  10

10     ACCOUNTING      7782    CLARK   7839    2450.0  10

10     ACCOUNTING      7934    MILLER  7782    1300.0  10

20     RESEARCH        7369    SMITH   7902    800.0   20

20     RESEARCH        7566    JONES   7839    2975.0  20

20     RESEARCH        7876    ADAMS   7788    1100.0  20

20     RESEARCH        7902    FORD    7566    3000.0  20

20     RESEARCH        7788    SCOTT   7566    3000.0  20

30     SALES   7499    ALLEN   7698    1600.0  30

30     SALES   7844    TURNER  7698    1500.0  30

30     SALES   7900    JAMES   7698    950.0   30

30     SALES   7698    BLAKE   7839    2850.0  30

30     SALES   7654    MARTIN  7698    1250.0  30

30     SALES   7521    WARD    7698    1250.0  30

40     OPERATIONS      NULL    NULL    NULL    NULL    NULL

Time taken: 118.992 seconds, Fetched: 15 row(s)

hive> select dept.*,emp.* from dept left outer join emp on dept.deptno=emp.deptno;

hive> select dept.*,emp.* from dept right outer join emp on dept.deptno=emp.deptno;

hive> select dept.*,emp.* from dept full outer join emp on dept.deptno=emp.deptno;

//outer必需要显示地存在

 

半连接是Hive所特有的,Hive不支持in操作,替代方案是用left semi join半连接,需要注意的是连接的表不能出现在查询列中,只能出现在on子名中。

hive> select dept.* from dept left semi join emp on dept.deptno=emp.deptno;

OK

10     ACCOUNTING

20     RESEARCH

30     SALES

Time taken: 119.238 seconds, Fetched: 3 row(s)

 

9.   子查询

HiveQL对子查询支持有限,只能在from引导的子句中出现子查询,如下语句在from子句中嵌套了一个子查询

hive> Select Deptno,Max(Num) From (Select Deptno, Count(Empno) Num From Emp Group By Deptno) by group by deptno;

 

10. 创建视图

Hive只支持逻辑视图,并不支持物理视图,建立的视图可以Mysql元数据库查到,但在hive的数据仓库目录下没有相应的视图表目录

hive> create view v_test as select a.dname,count(b.empno) from dept a join emp b on a.deptno=b.deptno group by a.dname;

OK

 

mysql> select database();

+------------+

| database() |

+------------+

| hive      |

+------------+

1 row in set (0.00 sec)

 

mysql> select tbl_name from TBLS;

+---------------------+

| tbl_name           |

+---------------------+

| access_20120104_log |

| bemp               |

| dept               |

| emp                |

| ext                |

| mutil2             |

| ptest              |

| salgrade           |

| test               |

| v_test             |

+---------------------+

10 rows in set (0.00 sec)

 

mysql>



 

 

HiveQL学习笔记(五):Hive练习题 本系列是本人对Hive的学习进行一个整理,主要包括以下内容: 1. 2. 3. 4. 5. 接下来对第五个内容进行介绍。 HiveSQL学习笔记(二)对应的练习题 这里没有原版的数据,只有字段名,所以只能靠脑补……主要是锻炼思考问题的方法,也可以上网找一些MySQL的题,然后用HiveSQL去完成。 以下问题的答案会陆续更新…… 将user_trade中的时间戳转为以下时间格式 2. HiveSQL学习笔记(三)对应的练习题 阅读详情

相关推荐

手把手讲解RTX5操作系统在GD32F407上的移植

然后将GD32F4xx_Demo_Suites_V2.6.4\GD32407V_START_Demo_Suites\Projects\01_GPIO_Running_LED下面的main函数复制到我们的项目文件夹中;打开对应GD32407V_START_Demo_Suites的文件夹下面的Utilities,复制gd32f407v_start.c和gd32f407v_start.h文件到一开始项目保存的文件夹下面;为了验证我们的操作系统是否被正确添加,是否能够正确运行,我们需要添加示例文件;

Praguejing的博客 1860

[大数据技术] Hive的常用HiveQL操作

1.Hive基本数据类型 Hive支持基本数据类型和复杂类型,基本数据类型主要有数值类型(INT、FLOAT、DOUBLE)、布尔型和字符串,复杂类型有三种:ARRAY、MAP和STRUCT。 (1)基本数据类型 TINYINY:1个字节 SMALLINT:2个字节 INT:4个字节 BIGINT:8个字节 BOOLEAN:TRUE/FALSE FLOAT:4个字节,单精度浮点型 DOUBLE:8个字节,双精度浮点型 STRING:字符串 (2)复杂数据类型 ARRAY:有序字段 MAP:无序字段 S

wong_faye的博客 1812

从ORCAP-1589警告看Cadence ORCAD的DRC设置:如何避免‘网络别名’引发的潜在短路风险

本文深入解析Cadence ORCAD中ORCAP-1589警告的深层含义,探讨网络别名可能引发的短路风险及DRC设置优化方案。通过分析网络别名的设计意图、DRC规则配置及最佳实践,帮助工程师有效规避设计风险,提升电路设计的可靠性和规范性。

weixin_34194829的博客 297

Hive的常用HiveQL操作

Hive的常用HiveQL操作

leoatliang的博客 3570

XGBoost调参新姿势:Bayesian优化实战指南(附完整代码)

本文详细介绍了如何使用Bayesian优化方法高效调优XGBoost模型参数。通过解析Bayesian优化核心原理和XGBoost关键参数,提供完整的实战代码示例,帮助读者掌握这一智能调参技术,显著提升模型性能。文章特别适合机器学习工程师和数据科学家阅读。

weixin_42536058的博客 366

ADRV9026初始化避坑指南:手把手调试PostMcsInit常见故障

本文详细解析了ADRV9026多片同步初始化过程中的PostMcsInit常见故障,包括时钟校准失败、JESD链路建立问题和ARM核通信异常等。通过实际项目经验,提供了硬件检查清单、软件配置要点和分层诊断方法,帮助工程师快速定位和解决问题,提升系统稳定性。

hadoop5ranger的博客 620

Hive学习之建表、插入数据、查询

                       Hive学习之建表、插入数据、查询 hive&gt; use hive ; OK Time taken: 0.024 seconds hive&gt; show tables; OK Time taken: 0.057 seconds hive&gt; create table if not exists student(name string,ag...

AcceptedLin的博客 1万+

Qwen-Image-2512 本地部署完全指南:从零开始搭建你的AI绘图工作站

阿里通义团队开源了Qwen-Image-2512模型,这款AI绘图模型在人物真实感、自然细节和文字渲染上表现惊艳,甚至在盲测中超越部分闭源模型。本文提供了详细的本地部署教程,从硬件准备、环境安装到使用ComfyUI运行模型,手把手教你生成第一张AI图片,并分享了进阶技巧和免费在线体验方式。

莫潇羽的个人博客 2426

Hive在执行插入数据等job任务出错

1、完全分布式中hive的执行模式 参考博客 问题描述: Hive在执行job任务时候卡死并报出信息:Number of reduce tasks is set to 0 since there’s no reduce operator(翻译:由于没有减少操作符,减少任务数被设置为0),如图: 这样的情况下,Hive 已经无法继续执行,只能退出重启hive(但是依然不能执行)。这是因为虽然输入文件很小,但是需要加载的文件很大,根本吃不消。 解决问题: Hive支持任务执行选择本地模式(local mode

fengjinghong的博客 8756

求助:有没有基于pscad的锂电池仿真模型

求助:有没有基于pscad的锂电池仿真模型 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变没有 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写...

qq_38922523的博客 1222

优化求解器性能:当分支切割算法中的gap停滞不前时如何应对

本文深入探讨了当分支切割算法求解复杂整数规划问题时,gap停滞不前的根本原因与应对策略。文章指出gap停滞源于上界(找不到更优整数解)或下界(证明过程缓慢)提升受阻,并提供了从模型改写、自定义割平面、调整搜索策略到参数调优等一系列实战方法,帮助优化工程师有效打破求解僵局,推动gap下降。

weixin_29294597的博客 381

hiveQL学习和hive常用操作

Hive服务 Hive外壳环境是可以使用hive命令来运行的一项服务。可以在运行时使用- service选项指明要使用哪种服务。键入hive-servicehelp可以获得可用服务 列表。下面介绍最有用的一些服务。 cli    Hive的命令行接口(外壳环境)。这是默认的服务。 hiveserver     让Hive以提供Trift服务的服务器形式运行,允许用不同语言编写的客户端

幸运小侯子 2449

5G无线关键技术 — 新型传输波形技术和先进编码与调制技术

目录 1、OFDM传输波形技术 2、滤波器组多载波 (Filterbank multicarrier:FBMC) 3、先进编码与调制技术 4、空间调制(Spatial Modulation SM) 5、频率正交幅度调制 1、OFDM传输波形技术 OFDM是当前Wi-Fi和LTE标准中的高速无线通信的主要传信模式。 LTECP配置 子载波间隔 CP长度Tcp 有用符号长度Tu CP比例..

Fanjufei的博客 2128

大数据学习6——Hive常用的HiveQL操作

1)Hive基本数据类型首先,我们简单叙述一下HiveQL的基本数据类型。Hive支持基本数据类型和复杂类型, 基本数据类型主要有数值类型(INT、FLOAT、DOUBLE ) 、布尔型和字符串, 复杂类型有三种:ARRAY、MAP 和 STRUCT。a.基本数据类型TINYINT: 1个字节SMALLINT: 2个字节INT: 4个字节BIGINT: 8个字节BOOLEAN: TRUE/FAL...

csdn950212的博客 1889

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Hive常用HiveQL操作

1.创建数据库 create database if not exists test; #如果test数据库不存在则创建 2.查看Hive中数据库 show databases; show databases like 'h.*'; #查看Hive中以h开头数据库 3.切换数据库 use test; ...

cosuyo的博客 549

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Hive学习笔记:03Hive的数据类型与HiveQL的常用操作

Hive的SQL“方言被称为”HiveQL,他是SQL-92、MYSQL和Oracle SQL语言的混合体。所以很多操作都和传统的数据库的操作非常类似,尤其是MySQL。Hive的基本类型和MySQL数据库的类型基本一致,但是也有些细微的区别: HiveQL 数据库DATABASE/SCHEMA Hive中也有数据库的概念,使用HiveQL的操作如下: 示例 删除数据库 语法: 示例: 查看数据库 切换数据库 语法: use + 数据库名称 示例: 表的DDL操作 创建表 语法:

571

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

HiveQL的基础操作全集

一:sql数据操作和查询 – 1.语句命令组成: 数据定义语言(ddl),包括create(创建)命令、alter(修改)命令、drop(删除)命令等。 – 主要针对对象的结构 数据操纵语言(dml),包括insert(插入)命令、update(更新)命令、delete(删除)命令等。 – 主要针对表 数据查询语言(dql),包括基本查询语句、order by子句、group by子句等。 事务控制语言(tcl),包括commit(提交)命令、rollback(回滚)命令。 数

weixin_45650409的博客 1226

HiveQL语法一览

HiveQL是一种类似SQL的语言, 它与大部分的SQL语法兼容, 但是并不完全支持SQL标准, 如HiveQL不支持更新操作, 也不支持索引和事务, 它的子查询和join操作也很局限, 这是因其底层依赖于Hadoop云平台这一特性决定的, 但其有些特点是SQL所无法企及的。例如多表查询、支持create table as select和集成MapReduce脚本等, 本节主要介绍Hive的数据类

Jason的专栏 1025

HiveQL详解

HiveQL是一种类似SQL的语言, 它与大部分的SQL语法兼容, 但是并不完全支持SQL标准, 如HiveQL不支持更新操作, 也不支持索引和事务, 它的子查询和join操作也很局限, 这是因其底层依赖于Hadoop云平台这一特性决定的, 但其有些特点是SQL所无法企及的。例如多表查询、支持create table as select和集成MapReduce脚本等, 本节主要介绍Hive的数据类...

weixin_30639719的博客 74
上一篇: eclipse配置hadoop mapreduce开发环境
下一篇: Linux Device Mapper Multipathing技术
常飞梦
常飞梦 领域专家: 数据库技术领域 领域专家: 数据库技术领域
博客等级 码龄21年 403粉丝 314原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值