博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hive 5、Hive 的数据类型 和 DDL Data Definition Language)
阅读量:6682 次
发布时间:2019-06-25

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

官方帮助文档:

Hive的数据类型

-- 扩展数据类型 data_type  : primitive_type  | array_type  | map_type  | struct_type  | union_type  -- (Note: Available in Hive 0.7.0 and later)
array_type : ARRAY < data_type >map_type : MAP < primitive_type, data_type >struct_type : STRUCT < col_name : data_type [COMMENT col_comment], ...>union_type : UNIONTYPE < data_type, data_type, ... >  -- (Note: Available in Hive 0.7.0 and later)
-- 基本数据类型 primitive_type  : TINYINT  | SMALLINT  | INT  | BIGINT  | BOOLEAN  | FLOAT  | DOUBLE  | STRING  | BINARY      -- (Note: Available in Hive 0.8.0 and later)  | TIMESTAMP   -- (Note: Available in Hive 0.8.0 and later)  | DECIMAL     -- (Note: Available in Hive 0.11.0 and later)  | DECIMAL(precision, scale)  -- (Note: Available in Hive 0.13.0 and later)  | DATE        -- (Note: Available in Hive 0.12.0 and later)  | VARCHAR     -- (Note: Available in Hive 0.12.0 and later)  | CHAR        -- (Note: Available in Hive 0.13.0 and later)

Hive  DDL

  Hive完整的DDL

  Hive DDL的语方法为类SQL语法,所以标准的SQL语法大多数在Hive中都可用;

CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name    -- (Note: TEMPORARY available in Hive 0.14.0 and later)  [(col_name data_type [COMMENT col_comment], ...)]  [COMMENT table_comment]  [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]  [CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]  [SKEWED BY (col_name, col_name, ...)                  -- (Note: Available in Hive 0.10.0 and later)]     ON ((col_value, col_value, ...), (col_value, col_value, ...), ...)     [STORED AS DIRECTORIES]  [   [ROW FORMAT row_format]    [STORED AS file_format]     | STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)]  -- (Note: Available in Hive 0.6.0 and later)  ]  [LOCATION hdfs_path]  [TBLPROPERTIES (property_name=property_value, ...)]   -- (Note: Available in Hive 0.6.0 and later)  [AS select_statement];   -- (Note: Available in Hive 0.5.0 and later; not supported for external tables)

   Hive建表

-- Hive建表 语法 CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_nameLIKE existing_table_or_view_name[LOCATION hdfs_path];create table person( id int, name string, age int, likes array
, address map
) row format delimited -- 指定导入数据的列与列之间的分隔符fields terminated by ',' -- 指定Array类型的分隔符collection ITEMS TERMINATED BY '-' -- 指定map类型的分隔符 map keys terminated by ':' -- 指定行与行之间的分隔符 lines terminated by '\n';

  表新建成功以后可以使用desc查询表结构

      

 

  Hive导入数据

# 三条数据,列与列之间用,号隔开;array之间用-号隔开;map之间用:号隔开;行与行用换行符隔开1,tom,28,game-music-book,stu:henan-home:henan-work:beijing2,jack,21,money-meinv,stu:wuhan-home:wuhan3,lusi,18,shopping-music,stu:shanghai-home:beijing

  导入数据:

hive> load data local inpath '/opt/data.txt' overwrite into table person;

  

 

  数据查询 

-- 查询所有select * from person;-- 还可以这样查 select * from person where name='tom';-- 或者这样select * from person where likes[1]='music';-- 还有这样select * from person where address['stu']='shanghai'; -- 还有这样select avg(age) from person;-- ... 等标准的SQL语法大多都可以在Hive中使用包括一些函数,因为Hive是类SQL的;

 

  但在Hive中不推荐进行这些操作:Insert、Update、Delete等操作,因为Hive的特性是对数据仓库的数据进行提取,针对的数据是批量的,不适合行级的运算;

  

  清空表

-- 使truncate清空表TRUNCATE TABLE person;-- 通过覆盖的方式清空表insert overwrite table person select * from person where 1=2;

  删除表

drop table person;

 

转载地址:http://npxao.baihongyu.com/

你可能感兴趣的文章
我的友情链接
查看>>
酒有两不喝,财有两不发,忙有三不帮,亲有三不走!
查看>>
IPFS 服务的Python访问
查看>>
DllMain详解
查看>>
Class bytes found but defineClass()failed for error when deploying EAR
查看>>
IIS7.0安装的FTP建账号
查看>>
spring --理解
查看>>
前台中文数据后台achieveRequest().getParameter获取乱码问题
查看>>
sed工具扩展学习
查看>>
db4o 参考资料
查看>>
mysql生产环境___主从同步修复案例
查看>>
对Controller的单元测试
查看>>
人工智能无法挑战人心
查看>>
移动web 1px边框解决方案
查看>>
centos7.4 Rsync配置和触发备份
查看>>
Oracle12c 安装
查看>>
DX11之D3DXMatrixIdentity 函数
查看>>
四项重要标准 让金融机构评选合适的DDoS防护提供商
查看>>
iOS开发的插件和工具
查看>>
设置UIButton,UITextFild边框圆角(上半边或下半边)
查看>>