博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hive 创建外部表
阅读量:6671 次
发布时间:2019-06-25

本文共 1638 字,大约阅读时间需要 5 分钟。

hot3.png

1. 将数据上传至 hdfs

hdfs dfs -put stocks /user/bigdata

164154_MlMM_1411151.png

2. 创建外部表

create external table if not exists stocks_external(ymd date,price_open float,price_high float,price_low float,price_close float,volume int,price_adj_close float)partitioned by (exchanger string,symbol string)row format delimited fields terminated by ','location '/user/bigdata/stocks';

3. 载入数据

alter table stocks_external add partition(exchanger="NASDAQ", symbol="AAPL") location '/user/bigdata/stocks/NASDAQ/AAPL';alter table stocks_external add partition(exchanger="NASDAQ", symbol="INTC") location '/user/bigdata/stocks/NASDAQ/INTC';alter table stocks_external add partition(exchanger="NYSE", symbol="IBM") location '/user/bigdata/stocks/NYSE/IBM';alter table stocks_external add partition(exchanger="NYSE", symbol="GE") location '/user/bigdata/stocks/NYSE/GE';-- 展示分区信息show partitions stocks_external;

4. 查询表

select * from stocks_external where exchanger = 'NASDAQ' and symbol = 'AAPL' limit 10;select ymd, price_close from stocks_external where exchanger = 'NASDAQ' and symbol = 'AAPL' limit 10;select exchanger, symbol, count(*) from stocks_external group by exchanger,symbol;select exchanger, symbol, max(price_high) from stocks_external group by exchanger, symbol;

5. 删除表

-- 删除外部表drop table stocks_external;-- 查看 hdfs 上的数据,删除外部表是只删除表的元数据,不删除表的实际数据,这点和hdfs dfs -ls /user/bigdata

最后归纳一下Hive中表与外部表的区别:

  1、在导入数据到外部表,数据并没有移动到自己的数据仓库目录下,也就是说外部表中的数据并不是由它自己来管理的!而表则不一样;
  2、在删除表的时候,Hive将会把属于表的元数据和数据全部删掉;而删除外部表的时候,Hive仅仅删除外部表的元数据,数据是不会删除的!
  那么,应该如何选择使用哪种表呢?在大多数情况没有太多的区别,因此选择只是个人喜好的问题。但是作为一个经验,如果所有处理都需要由Hive完成,那么你应该创建表,否则使用外部表!

转载于:https://my.oschina.net/zdtdtel/blog/1613061

你可能感兴趣的文章
前端魔法堂:解秘FOUC
查看>>
远端访问MySQL
查看>>
今天写shader流光效果,shader代码少了个括号,unity shader compiler卡死且不提示原因...
查看>>
SQL Server中的执行引擎入门
查看>>
转]使用Python获得本机IP地址
查看>>
万能清除浮动样式
查看>>
C++/C, Java学习资料
查看>>
f(f(x))=-x, x是Int32,这类函数的抽象理解
查看>>
extjs Accordion 怎样把展开符号:加号(+)放在左边?
查看>>
MVVM架构~knockoutjs系列之扩展ajax验证~验证输入数据是否与后台数据相等
查看>>
[LeetCode] Longest Consecutive Sequence
查看>>
CentOS 6.5 下安装 Redis 2.8.7
查看>>
论文阅读笔记(六)
查看>>
redis搭建实战记录
查看>>
CentOs~程序部署那些事
查看>>
13.2. 数字签名
查看>>
布局管理器之CardLayout(卡片布局管理器)
查看>>
两个js冲突怎么解决?试试这四个方法
查看>>
关于查询扩展版ESI高被引论文的说明
查看>>
167.5. libvirt
查看>>