hive的基本命令

创建表

CREATE TABLE pokes (foo INT, bar STRING);

创建表并创建索引字段ds

CREATE TABLE invites (foo INT, bar STRING) PARTITIONED BY (ds
STRING);

显示所有表

SHOW TABLES;

按正条件(正则表达式)显示表,

SHOW TABLES ‘.*s‘;

表添加一列

ALTER TABLE pokes ADD COLUMNS (new_col INT);

添加一列并增加列字段注释

ALTER TABLE invites ADD COLUMNS (new_col2 INT COMMENT ‘a comment‘);

更改表名

ALTER TABLE events RENAME TO 3koobecaf;

删除列

DROP TABLE pokes;

元数据存储

将文件中的数据加载到表中

LOAD DATA LOCAL INPATH ‘./examples/files/kv1.txt‘ OVERWRITE INTO TABLE
pokes;

加载本地数据,同时给定分区信息

LOAD DATA LOCAL INPATH ‘./examples/files/kv2.txt‘ OVERWRITE INTO TABLE
invites PARTITION (ds=‘2008-08-15‘);

加载DFS数据 ,同时给定分区信息

LOAD DATA INPATH ‘/user/myname/kv2.txt‘ OVERWRITE INTO TABLE invites
PARTITION (ds=‘2008-08-15‘);

SQL 操作

按先件查询

SELECT a.foo FROM invites a WHERE a.ds=‘<DATE>‘;

将查询数据输出至目录

INSERT OVERWRITE DIRECTORY ‘/tmp/hdfs_out‘ SELECT a.* FROM invites a WHERE
a.ds=‘<DATE>‘;

将查询结果输出至本地目录

INSERT OVERWRITE LOCAL DIRECTORY ‘/tmp/local_out‘ SELECT a.* FROM pokes
a;

选择所有列到本地目录

INSERT OVERWRITE TABLE events SELECT a.* FROM profiles a;

INSERT OVERWRITE TABLE events SELECT a.* FROM profiles a WHERE a.key <
100;

INSERT OVERWRITE LOCAL DIRECTORY ‘/tmp/reg_3‘ SELECT a.* FROM events a;

INSERT OVERWRITE DIRECTORY ‘/tmp/reg_4‘ select a.invites, a.pokes FROM
profiles a;

INSERT OVERWRITE DIRECTORY ‘/tmp/reg_5‘ SELECT COUNT(1) FROM invites a WHERE
a.ds=‘<DATE>‘;

INSERT OVERWRITE DIRECTORY ‘/tmp/reg_5‘ SELECT a.foo, a.bar FROM invites
a;

INSERT OVERWRITE LOCAL DIRECTORY ‘/tmp/sum‘ SELECT SUM(a.pc) FROM pc1 a;

将一个表的统计结果插入另一个表中

FROM invites a INSERT OVERWRITE TABLE events SELECT a.bar, count(1) WHERE
a.foo > 0 GROUP BY a.bar;

INSERT OVERWRITE TABLE events SELECT a.bar, count(1) FROM invites a WHERE
a.foo > 0 GROUP BY a.bar;

JOIN的使用

FROM pokes t1 JOIN invites t2 ON (t1.bar = t2.bar) INSERT OVERWRITE TABLE
events SELECT t1.bar, t1.foo, t2.foo;

将多表数据插入到同一表中

FROM src

INSERT OVERWRITE TABLE dest1 SELECT src.* WHERE src.key < 100

INSERT OVERWRITE TABLE dest2 SELECT src.key, src.value WHERE src.key >=
100 and src.key < 200

INSERT OVERWRITE TABLE dest3 PARTITION(ds=‘2008-04-08‘, hr=‘12‘) SELECT
src.key WHERE src.key >= 200 and src.key < 300

INSERT OVERWRITE LOCAL DIRECTORY ‘/tmp/dest4.out‘ SELECT src.value WHERE
src.key >= 300;

将文件流直接插入文件

FROM invites a INSERT OVERWRITE TABLE events SELECT TRANSFORM(a.foo, a.bar)
AS (oof, rab) USING ‘/bin/cat‘ WHERE a.ds > ‘2008-08-09‘;

实际示例

创建一个表

CREATE TABLE u_data (

userid INT,

movieid INT,

rating INT,

unixtime STRING)

ROW FORMAT DELIMITED

FIELDS TERMINATED BY ‘\t‘

STORED AS TEXTFILE;

下载示例数据文件,并解压缩

wget http://www.grouplens.org/system/files/ml-data.tar__0.gz

tar xvzf ml-data.tar__0.gz

加载数据到表中

LOAD DATA LOCAL INPATH ‘ml-data/u.data‘

OVERWRITE INTO TABLE u_data;

统计数据总量

SELECT COUNT(1) FROM u_data;

现在做一些复杂的数据分析

创建一个 weekday_mapper.py: 文件,作为数据按周进行分割

import sys

import datetime

for line in sys.stdin:

line = line.strip()

userid, movieid, rating, unixtime = line.split(‘\t‘)

生成数据的周信息

weekday = datetime.datetime.fromtimestamp(float(unixtime)).isoweekday()

print ‘\t‘.join([userid, movieid, rating, str(weekday)])

使用映射脚本

//创建表,按分割符分割行中的字段值

CREATE TABLE u_data_new (

userid INT,

movieid INT,

rating INT,

weekday INT)

ROW FORMAT DELIMITED

FIELDS TERMINATED BY ‘\t‘;

//将python文件加载到系统

add FILE weekday_mapper.py;

将数据按周进行分割

INSERT OVERWRITE TABLE u_data_new

SELECT

TRANSFORM (userid, movieid, rating, unixtime)

USING ‘python weekday_mapper.py‘

AS (userid, movieid, rating, weekday)

FROM u_data;

SELECT weekday, COUNT(1)

FROM u_data_new

GROUP BY weekday;

hive的基本命令,布布扣,bubuko.com

时间: 2024-08-11 14:04:36

hive的基本命令的相关文章

大数据学习方向,从入门到精通

推荐一个大数据学习群 119599574晚上20:10都有一节[免费的]大数据直播课程,专注大数据分析方法,大数据编程,大数据仓库,大数据案例,人工智能,数据挖掘都是纯干货分享,你愿意来学习吗 很多初学者在萌生向大数据方向发展的想法之后,不免产生一些疑问,应该怎样入门?应该学习哪些技术?学习路线又是什么? 所有萌生入行的想法与想要学习Java的同学的初衷是一样的.岗位非常火,就业薪资比较高,,前景非常可观.基本都是这个原因而向往大数据,但是对大数据却不甚了解. 如果你想学习,那么首先你需要学会编

大数据学习之小白如何学大数据?(详细篇)

大数据这个话题热度一直高居不下,不仅是国家政策的扶持,也是科技顺应时代的发展.想要学习大数据,我们该怎么做呢?大数据学习路线是什么?先带大家了解一下大数据的特征以及发展方向. 大数据的三个发展方向,平台搭建/优化/运维/监控.大数据开发/设计/架构.数据分析/挖掘. 先说一下大数据的4V特征: 数据量大,TB->PB 数据类型繁多,结构化.非结构化文本.日志.视频.图片.地理位置等; 商业价值高,但是这种价值需要在海量数据之上,通过数据分析与机器学习更快速的挖掘出来; 处理时效性高,海量数据的处

大数据开发初学者该怎么做?

经常有初学者在问,自己想往大数据方向发展,该学哪些技术,学习路线是什么样的,觉得大数据很火,就业很好,薪资很高.如果自己很迷茫,为了这些原因想往大数据方向发展,也可以,那么我就想问一下,你的专业是什么,对于计算机/软件,你的兴趣是什么?是计算机专业,对操作系统.硬件.网络.服务器感兴趣?是软件专业,对软件开发.编程.写代码感兴趣?还是数学.统计学专业,对数据和数字特别感兴趣.. 其实这就是想告诉你的大数据的三个发展方向,平台搭建/优化/运维/监控.大数据开发/设计/架构.数据分析/挖掘.请不要问

做了五年大数据开发工程师总结的的大数据学习路线

先扯一下大数据的4V特征: 数据量大,TB->PB 数据类型繁多,结构化.非结构化文本.日志.视频.图片.地理位置等: 商业价值高,但是这种价值需要在海量数据之上,通过数据分析与机器学习更快速的挖掘出来: 处理时效性高,海量数据的处理需求不再局限在离线计算当中. 现如今,正式为了应对大数据的这几个特点,开源的大数据框架越来越多,越来越强,先列举一些常见的: 文件存储:Hadoop HDFS.Tachyon.KFS 离线计算:Hadoop MapReduce.Spark 流式.实时计算:Storm

大数据入门,到底要怎么学习大数据?

很多人都知道大数据很火,就业很好,薪资很高,想往大数据方向发展.但该学哪些技术,学习路线是什么样的呢? 其实就是想告诉你的大数据的三个发展方向,平台搭建/优化/运维/监控.大数据开发/设计/架构.数据分析/挖掘.请不要问我哪个好学,哪个钱多. 先说一下大数据的4V特征: 数据量大,TB->PB 数据类型繁多,结构化.非结构化文本.日志.视频.图片.地理位置等: 商业价值高,但是这种价值需要在海量数据之上,通过数据分析与机器学习更快速的挖掘出来: 处理时效性高,海量数据的处理需求不再局限在离线计算

大数据开发学习路线整理

参考博客:做了五年大数据开发工程师总结的的大数据学习路线 大数据的4V特征: 1.        数据量大,TB->PB 2.        数据类型繁多,结构化.非结构化文本.日志.视频.图片.地理位置等: 3.        商业价值高,但是这种价值需要在海量数据之上,通过数据分析与机器学习更快速的挖掘出来: 4.        处理时效性高,海量数据的处理需求不再局限在离线计算当中. 常见的大数据的开源框架: l  文件存储:Hadoop HDFS.Tachyon.KFS l  离线计算:

大数据开发学习步骤

经常有初学者 问我,自己想往大数据方向发展,该学哪些技术,学习路线是什么样的,觉得大数据很火,就业很好,薪资很高.如果自己很迷茫,为了这些原因想往大数据方向发展,也可以,那么我就想问一下,你的专业是什么,对于计算机/软件,你的兴趣是什么?是计算机专业,对操作系统.硬件.网络.服务器感兴趣?是软件专业,对软件开发.编程.写代码感兴趣?还是数学.统计学专业,对数据和数字特别感兴趣. 其实这就是想告诉你的大数据的三个发展方向,平台搭建/优化/运维/监控.大数据开发/设计/架构.数据分析/挖掘.请不要问

Hive基本命令整理

创建表: hive> CREATE TABLE pokes (foo INT, bar STRING); Creates a table called pokes with two columns, the first being an integer and the other a string 创建一个新表,结构与其他一样 hive> create table new_table like records; 创建分区表: hive> create table logs(ts bigi

Hive学习之七《 Sqoop import 从关系数据库抽取到HDFS》

一.什么是sqoop Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql.postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 :MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中. 二.sqoop的特点 Sqoop中一大亮点就是可以通过hadoop的mapreduce把数据从关系型数据库中导入数据到HDFS. 三.Sqoop import 命令 将Mys