Hive - 建表和加载数据指令小结 以及使用Load data指令的注意事项
类似Mysql的数据库概念:
hive> CREATE DATABASE cui;
hive> USE cui;
创建表:
CREATE TABLE test(
first STRING,
second STRING
)
默认记录和字段分隔符:
\n 每行一条记录
^A 分隔列(八进制 \001)
^B 分隔ARRAY或者STRUCT中的元素,或者MAP中多个键值对之间分隔(八进制 \002)
^C 分隔MAP中键值对的“键”和“值”(八进制 \003)
自定义分隔符:
CREATE TABLE test(
……
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\001'
COLLECTION ITEMS TERMINATED BY '\002'
MAP KEYS TERMINATED BY '\003'
LINES TERMINATED BY '\n'
查看信息:
DESCRIBE DATABASE cui;
DESCRIBE DATABASE EXTENDED cui;
分区表:
CREATE TABLE test(
……
)
PARTITIONED BY ( country STRING ); #分区键和字段不能重复
------------------------------------------------------------------
加载数据:
LOAD DATA LOCAL INPATH '/path/to/local/files'
OVERWRITE INTO TABLE test
PARTITION (country='CHINA')
有LOCAL表示从本地文件系统加载(文件会被拷贝到HDFS中)
无LOCAL表示从HDFS中加载数据(注意:文件直接被移动!!!而不是拷贝!!! 并且。。文件名都不带改的。。)
OVERWRITE 表示是否覆盖表中数据(或指定分区的数据)(没有OVERWRITE 会直接APPEND,而不会滤重!)
关于加载数据的LOCAL关键字:
【使用前】:
[cui@node1 ~]$ hadoop fs -ls /workspace
Found 2 items
-rw-r--r-- 1 yjt-app1-web1 supergroup 1716110 2016-01-14 16:31 /workspace/IOS_OPERA_STATISTICS_20160113.01.DAT
-rw-r--r-- 1 yjt-app1-web1 supergroup 520964539 2016-01-14 21:20 /workspace/bpUserinfo_201511.log
【使用中】:
hive> LOAD DATA INPATH '/workspace/bpUserinfo_201511.log' INTO table testkv;
Loading data to table default.testkv
Table default.testkv stats: [numFiles=3, numRows=0, totalSize=520964575, rawDataSize=0]
OK
Time taken: 1.015 seconds
【使用后】:
[cui@node1 ~]$ hadoop fs -ls /workspace
Found 1 items
-rw-r--r-- 1 yjt-app1-web1 supergroup 1716110 2016-01-14 16:31 /workspace/IOS_OPERA_STATISTICS_20160113.01.DAT
[cui@node1 ~]$ hadoop fs -ls /user/hive/warehouse/testkv
Found 5 items
drwxrwxr-x - yjt-app1-web1 supergroup 0 2016-01-14 21:06 /user/hive/warehouse/testkv/.hive-staging_hive_2016-01-14_21-06-53_158_2726638877292950395-1
drwxrwxr-x - yjt-app1-web1 supergroup 0 2016-01-14 21:08 /user/hive/warehouse/testkv/.hive-staging_hive_2016-01-14_21-08-59_461_1557138301562621871-1
-rwxrwxr-x 1 yjt-app1-web1 supergroup 520964539 2016-01-14 21:20 /user/hive/warehouse/testkv/bpUserinfo_201511.log
-rwxrwxr-x 1 yjt-app1-web1 supergroup 24 2016-01-14 21:09 /user/hive/warehouse/testkv/part-00000
-rwxrwxr-x 1 yjt-app1-web1 supergroup 12 2016-01-14 21:09 /user/hive/warehouse/testkv/part-00001
如果加载同样文件名的文件,会被自动重命名:
【使用前】:
[cui@node1 ~]$ cp ~/oltpUserSqlLogs/crm/data/bpUserinfo_201504.log .
[cui@node1 ~]$ mv bpUserinfo_201504.log bpUserinfo_201511.log
[cui@node1 ~]$ hadoop fs -put bpUserinfo_201511.log /workspace
[cui@node1 ~]$ hadoop fs -ls /workspace
Found 2 items
-rw-r--r-- 1 yjt-app1-web1 supergroup 1716110 2016-01-14 16:31 /workspace/IOS_OPERA_STATISTICS_20160113.01.DAT
-rw-r--r-- 1 yjt-app1-web1 supergroup 40393299 2016-01-15 13:20 /workspace/bpUserinfo_201511.log
【使用中】:
hive> LOAD DATA INPATH '/workspace/bpUserinfo_201511.log' INTO table testkv;
Loading data to table default.testkv
Table default.testkv stats: [numFiles=4, numRows=0, totalSize=561357874, rawDataSize=0]
OK
Time taken: 1.745 seconds
【使用后】:
[cui@node1 ~]$ hadoop fs -ls /workspace
Found 1 items
-rw-r--r-- 1 yjt-app1-web1 supergroup 1716110 2016-01-14 16:31 /workspace/IOS_OPERA_STATISTICS_20160113.01.DAT
[cui@node1 ~]$ hadoop fs -ls /user/hive/warehouse/testkv
Found 6 items
drwxrwxr-x - yjt-app1-web1 supergroup 0 2016-01-14 21:06 /user/hive/warehouse/testkv/.hive-staging_hive_2016-01-14_21-06-53_158_2726638877292950395-1
drwxrwxr-x - yjt-app1-web1 supergroup 0 2016-01-14 21:08 /user/hive/warehouse/testkv/.hive-staging_hive_2016-01-14_21-08-59_461_1557138301562621871-1
-rwxrwxr-x 1 yjt-app1-web1 supergroup 520964539 2016-01-14 21:20 /user/hive/warehouse/testkv/bpUserinfo_201511.log
-rwxrwxr-x 1 yjt-app1-web1 supergroup 40393299 2016-01-15 13:20 /user/hive/warehouse/testkv/bpUserinfo_201511_copy_1.log
-rwxrwxr-x 1 yjt-app1-web1 supergroup 24 2016-01-14 21:09 /user/hive/warehouse/testkv/part-00000
-rwxrwxr-x 1 yjt-app1-web1 supergroup 12 2016-01-14 21:09 /user/hive/warehouse/testkv/part-00001
Hive - 建表和加载数据指令小结 以及使用Load data指令的注意事项的更多相关文章
- [Hive_3] Hive 建表指定分隔符
0. 说明 Hive 建表示例及指定分隔符 1. Hive 建表 Demo 在 Hive 中输入以下命令创建表 user2 create table users2 (id int, name stri ...
- hive sequencefile导入文件遇到FAILED: SemanticException Unable to load data to destination table. Error: The file that you are trying to load does not match the file format of the destination table.错误
hive sequencefile导入文件遇到FAILED: SemanticException Unable to load data to destination table. Error: Th ...
- hive建表与数据的导入导出
建表: create EXTERNAL table tabtext(IMSI string,MDN string,MEID string,NAI string,DestinationIP string ...
- Apache Hive 建表操作的简单描述
客户端连接hive [root@bigdata-02 bin]# ./beeline Beeline version by Apache Hive beeline: Connecting : Ente ...
- Oracle 自动生成hive建表语句
从 oracle 数据库导数到到 hive 大数据平台,需要按照大数据平台的数据规范,重新生成建表的 SQL 语句,方便其间,写了一个自动生成SQL的存储过程. ① 创建一张表,用来存储源表的结构,以 ...
- CDH集群部署hive建表中文乱码
背景:部署CDH集群的 hive 服务,选用 mysql 作为 hive 元数据的存储数据库,通过 hive cli 建表时发现中文注释均乱码. 现象:hive端建表中文注释乱码. 定位: 已经确认过 ...
- 利用MySQL原数据信息批量转换指定库数据表生成Hive建表语句
1.写出文件工具类 package ccc.utile; import java.io.*; /** * @author ccc * @version 1.0.0 * @ClassName Write ...
- Hive建表和内外部表的使用
原文链接: https://www.toutiao.com/i6766784274965201415 一.普通建表方式 create table stu_info( id int, name stri ...
- hive建表没使用LZO存储格式,可是数据是LZO格式时遇到的问题
今天微博大数据平台发邮件来说.他们有一个hql执行失败.可是从gateway上面的日志看不出来是什么原因导致的,我帮忙看了一下.最后找到了问题的解决办法,下面是分析过程: 1.执行失败的hql: IN ...
随机推荐
- Java 线程池架构原理和源码解析(ThreadPoolExecutor)
在前面介绍JUC的文章中,提到了关于线程池Execotors的创建介绍,在文章:<java之JUC系列-外部Tools>中第一部分有详细的说明,请参阅: 文章中其实说明了外部的使用方式,但 ...
- A Tour of Go Nil slices
The zero value of a slice is nil. A nil slice has a length and capacity of 0. (To learn more about s ...
- java简单实现季节,性别分词处理
淘宝里面,每个宝贝都有一个标题,根据标题来分词,区分出季节和性别,分别写了两个方法,供大家参考. public int season(String str) { String dest = " ...
- Python自动安装第三方类库
Python在使用过程中会用到大量的第三方库,逐一手工去下载.安装比较繁琐.可以配置第三方镜像源并使用pip进行自动安装.这里推荐选择豆瓣的镜像源:http://pypi.douban.com/sim ...
- 大数据与可靠性会碰撞出什么样的Spark?
可靠性工程领域的可靠性评估,可靠性仿真计算,健康检测与预管理(PHM)技术,可靠性试验,都需要大规模数据来进行支撑才能产生好的效果,以往这些数据都是不全并且收集困难,而随着互联网+的大数据时代的来临, ...
- 适合高级Java程序员看的12本书
1.Thinking in Java 2.Head First Java 3.Java in a Nutshell 4.The elements of Java style 5.Effective J ...
- Android两个控件叠在一起,如何让被挡住的控件显示出来
Android两个控件叠在一起,如何让被挡住的控件显示出来 问题 : 两个控件叠在一起,如何让被挡住的控件显示出来? 比如A,B两个控件,A被B挡住,目前A要显示出来,B不能被隐藏,A的高度只有那么一 ...
- [GIF] Shape Objects in GIF Loop Coder
This lesson is a quick tour of the predefined shape objects in GIF Loop Coder. function onGLC(glc) { ...
- careercup-递归和动态规划 9.4
9.4 编写一个方法,返回某集合的所有子集. 类似leetcode:Subsets 解法: 解决这个问题之前,我们先要对时间和空间复杂度有个合理的评估.一个集合会有多少子集?我们可以这么计算,生成了一 ...
- 如何编译libcurl
1. Android •1.1配置 •1.2 Make •1.3的参数配置 2.iOS 3.windows 4.关于头文件 注释 本文档介绍了如何为Android,iOS和Windows编译libcu ...