#建表

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. 【置顶】CSP/S 2019退役祭

    标题没错,今年就是我的最后一年了. 才高一啊,真不甘心啊. DAY1(之前的看前几篇博客吧) T1 现在没挂 T2 貌似是树形DP,跑到80000的深度时挂了,于是特判了链的情况,大样例过了,现在没挂 ...

  2. YARN学习笔记

    分布式资源调度框架 Yet Another Resource Negotiator YARN 不同框架使用相同的系统资源 YARN的核心组件(架构) ResourceManager RM 整个集群同一 ...

  3. go中字符类型的使用小结

    示例 // 字符类型的用法 package main import ( "fmt" "unsafe" ) func main() { // 未指定类型并赋值字符 ...

  4. Linux帮助用法

    内部命令: help COMMAND 或 man bash 外部命令: (1) COMMAND --helpCOMMAND -h(2) 使用手册(manual)man COMMAND(3) 信息页in ...

  5. java基础之轻松搞定反射

    前言 java的名词太古怪.反射白话文解释,就是把一个字符串的类名,实例化,少了个new单词. 反射步骤 准备一个苹果类像这个样子. public class PingGuo { private St ...

  6. 全栈开发React-私有路由

    demo import React from 'react'; import {Route,Redirect} from 'react-router-dom' import {connect} fro ...

  7. idea maven打jar包

    双击clean install 会在根目录targer生成文件(注意删除test和替换yml文件)

  8. CNN基础四:监测并控制训练过程的法宝——Keras回调函数和TensorBoard

    训练模型时,很多事情一开始都无法预测.比如之前我们为了找出迭代多少轮才能得到最佳验证损失,可能会先迭代100次,迭代完成后画出运行结果,发现在中间就开始过拟合了,于是又重新开始训练. 类似的情况很多, ...

  9. 斯特林数&斯特林反演

    第一类斯特林数 定义 第一类Stirling数\(s(n,m)\),也可记为\(\begin{bmatrix}n\\m\end{bmatrix}\). 第一类Stirling分为无符号第一类Stirl ...

  10. php递归无限分类、根据子类获取所有顶类

    //递归无限分类树 public static function diGui($data, $pid) { $arr = collect([]); if (empty($data)) { return ...