#建表

create table sign_in (uri string , test string) row format delimited fields terminated by ‘|’;

#假设不存在表则创建

create table if not exists mytable (id bigint,name string);

#创建外部表

hive> create external table lss_sign_in  (uri string,token string)  row format delimited fields terminated by '\t’  ;

#从HDFS载入数据到表

hive> load data inpath 'hdfs:/user/root/input/sign_in/sign.uri' overwrite into table lss_sign_in;

#本地文件载入到hive 仓库:

hive> LOAD DATA LOCAL INPATH '/user/test.txt' OVERWRITE INTO TABLE lss;

#从HDFD载入到HIVE 仓库(注意这里记载完毕后会删除掉HDFS上的文件)

hive> LOAD DATA INPATH 'hdfs:/user/root/input/test.txt' OVERWRITE INTO TABLE kevin;    

Loading data to table default.kevin

Deleted hdfs://ixx-test-124:9019/user/hive/warehouse/kevin

尽管源文件表面上看是在HDFS删除了。事实上文件被移到hive HDFS数据仓库中去了。

默认数据库仓库的文件保存在: /user/hive/warehouse/

当中kevin相应的HIVE中得元数据表名称。

test.txt就是源文件,从本地载入文件和HDFS载入文件类似。

./hadoop fs -text /user/hive/warehouse/kevin/test.txt  

#查看表结构

describe tableName;

id      int

name    string

age     int

也能够使用:desc tableName。

#显示全部函数

show functions;

#查看函数用法

hive> describe function substr;

substr(str, pos[, len]) - returns the substring of str that starts at pos and is of length len

#依据URI分组,count(uri) 能够统计URI的PV

hive> select uri,count(uri) from sign_in group by uri;

#统计UV

hive> select uri, count(distinct koudaitoken) from sign_in group by uri;    

#也相同支持 limit 

#改动表结构

hive> alter table sign_in_uri replace columns(uri string);         

#把Select结果插入到表中

insert overwrite table sign_in_uri    select uri from sign_in group by uri;

#链接查询

#左链接

 select sign_in.*,sign_in_uri.* from sign_in_uri left outer join sign_in on(sign_in_uri.uri = sign_in.uri);

#右链接

select sign_in.*,sign_in_uri.* from sign_in_uri right outer join sign_in on(sign_in_uri.uri = sign_in.uri) ;

#全链接

hive> select sign_in.*,sign_in_uri.* from sign_in_uri full outer join sign_in on(sign_in_uri.uri = sign_in.uri) limit 100; 

#in 查询(hive不支持IN)使用semi join 达到类似效果

hive> select sign_in_uri.* from sign_in_uri left semi join sign_in on(sign_in_uri.uri = sign_in.uri) limit 10;

使用正则

hive> select regexp_extract(koudaitoken,'\\[.*\\]',0) from sign_in limit 10;

#查看函数用法

hive> describe function regexp_extract  

regexp_extract(str, regexp[, idx]) - extracts a group that matches regexp

#注意写入HDFS或本地文件夹时会删除掉文件夹下的内容。  

#将Hive数据导出到本地文件夹

hive> insert overwrite local directory '/luanshoushen/hive' select * from sign_in_uri;

#将Hive数据导出到HDFS

hive> insert overwrite directory 'user/root/input/hive' select * from sign_in;

#使用一个查询将结果写入HDFS文件夹和本地文件夹

hive> from sign_in 

    > insert overwrite local directory '/luanshoushen/hive' select * 

    > insert overwrite directory '/user/root/input/' select * 

    > ;

hive HQL笔记的更多相关文章

  1. hive学习笔记之一:基本数据类型

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  2. hive学习笔记之三:内部表和外部表

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  3. hive学习笔记之四:分区表

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  4. hive学习笔记之五:分桶

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  5. hive学习笔记之六:HiveQL基础

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  6. hive学习笔记之七:内置函数

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  7. hive学习笔记之九:基础UDF

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  8. hive学习笔记之十:用户自定义聚合函数(UDAF)

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是<hive学习笔记>的第十 ...

  9. hive学习笔记之十一:UDTF

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

随机推荐

  1. python基础--冒泡排序

    1.冒泡排序 1.首先用一张图来形象描述一下冒泡排序: 2.废话不多说,直接上代码 # 1.导入随机模块 import random # 2.定义一个列表,列表内的元素为20个100以内的随机整数 l ...

  2. Https socket 连接

    介: 本文主要介绍了网络安全通讯协议 SSL/TLS 和 Java 中关于安全通讯的实现部分.并通过一个简单的样例程序实现,来展示如何在 Java 平台上正确建立安全通讯. 在人类建立了通信系统之后, ...

  3. 【转】Ubuntu下外放有声音 耳机没声音

    真是使用linux每天都有新的发现啊,今天早上起来用电脑,想听几首歌,插上耳机后发现没声音,我还以为是耳机坏了,就把耳机插在了手机上,发现耳机有声音,很纳闷,我象是不是电脑接口有问题了,但是在进系统的 ...

  4. java并发编程之美-阅读记录5

    java并发包中的并发List 5.1CopeOnWriteArrayList 并发包中的并发List只有CopyOnWriteArrayList,该类是一个线程安全的arraylist,对其进行的修 ...

  5. LAN VLAN与VXLAN学习笔记

    一.LAN(Local Area Network,局域网) 1.通信方式: 向目标IP地址发送ARP广播,获取目的IP地址的MAC地址,然后用单播MAC地址实现相互通信 2.LAN的特点: 1.同一L ...

  6. DecimalFormat数字格式化

    DecimalFormat可以按照需要格式化数字,下面简单介绍一下几种使用.其中自己也踏踏实实踩了坑,谨此记录. 保留位数设置 public class DecimalUtils { //保留2位,不 ...

  7. MAVEN项目标准目录结构(转)

    转自:http://blog.csdn.net/lengyue_wy/article/details/6718637 版权声明:本文为博主原创文章,未经博主允许不得转载.    1.标准目录结构: s ...

  8. linux-ftp install

    ftp安装 yum install vsftpd vi /etc/vsftpd/vsftpd.conf (可以先备份,但不要放在此目录下,不然启动vsftpd的时候 也会加载其备份文件,报启动错误,因 ...

  9. jquery 下拉框左右选择

    html <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <ti ...

  10. Delphi 版本信息获取函数 GetFileVersionInfo、GetFileVersionInfoSize、VerFindFile、VerInstallFile和VerQueryValue

    一.版本信息获取函数简介和作用 获取文件版本信息的作用: 1. 避免在新版本的组件上安装旧版本的相同组件: 2. 在多语言系统环境中,操作系统根据文件版本信息里提供的语言信息在启动程序时决定使用的正确 ...