hive基本语法

创建表

CREATE [EXTERNAL] TABLE t_lxw1234 (
  id INT,
  ip STRING COMMENT '访问者IP',
  avg_view_depth DECIMAL(5,1),
  bounce_rate DECIMAL(6,5)
) COMMENT 'lxw的大数据田地-lxw1234.com'
PARTITIONED BY (day STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
MAP KEYS TERMINATED BY ':'
STORED AS textfile
LOCATION 'hdfs://cdh5/tmp/lxw1234/';

EXTERNAL:表示该表为外部表,如果不指定EXTERNAL关键字,则表示内部表
COMMENT: 为表和列添加注释。关键字PARTITIONED BY: 表示该表为分区表,分区字段为day,类型为string。

ROW FORMAT DELIMITED: 指定表的分隔符,通常后面要与以下关键字连用
FIELDS TERMINATED BY ',':指定每行中字段分隔符为逗号
LINES TERMINATED BY ' ':指定行分隔符 。
COLLECTION ITEMS TERMINATED BY ',':指定集合中元素之间的分隔符
MAP KEYS TERMINATED BY ':' :指定数据中Map类型的Key与Value之间的分隔符
STORED AS file_format :指定表在HDFS上的文件存储格式,
可选的文件存储格式有:
  TEXTFILE:文本(默认值);
  SEQUENCEFILE:二进制序列文件;
  RCFILE、ORC、PARQUET:几种列式存储格式文件。
  LOCATION: 指定表在HDFS上的存储位置。

加载数据到hive

1、加载本地文件到hive表
  load data local inpath '/opt/datas/emp.txt' into table default.emp ;
  load data local inpath '/usr/local/app/emp.txt' into table default.emp partition (month='201805',day='31') ;
2、加载hdfs文件到hive中
  load data inpath '/user/beifeng/hive/datas/emp.txt' overwrite into table default.emp ;
3、加载数据覆盖表中已有的数据
  load data inpath '/user/beifeng/hive/datas/emp.txt' into table default.emp ;
4、创建表是通过insert加载
  create table default.emp_ci like emp ;
  insert into table default.emp_ci select * from default.emp ;

hive到文件

1、导入数据到本地目录
  insert overwrite local directory '/opt/datas/hive_exp_emp' select * from default.emp ;
  insert overwrite local directory '/opt/datas/hive_exp_emp2'
    ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' COLLECTION ITEMS TERMINATED BY ' '
    select * from default.emp ;
2、导出数据到HDFS中
  insert overwrite directory '/user/zhangxin/export_test' select value from test_table;
3、hive -e "select * from default.emp ;" > /opt/datas/exp_res.txt

执行脚本

hive -f words.hql
hive> source /home/hadoop/words.hql;
hive -e "select * from db_hive.student ;"
hive -e "show create table words;">>words.ddl

原文地址:https://www.cnblogs.com/boye169/p/14839332.html