学习笔记—Hive创建表

1. Hive语句的特点

HQL 语言大小写不敏感,但内容分大小写(where ,if/ case when,如:数据表内容某人名叫Tom,则条件后不能写tom,HDFS 路径名(NameNode)分大小写) ;

HQL 可以写在一行或者多行, 关键字不能被缩写也不能分行,同 SQL;

各子句一般要分行写, 使用缩进提高语句的可读性,为了美化,同SQL;

-- 为注释符号 ;

Hive 不存储数据,他是表到HDFS文件的映射关系(语句)

2. DDL

2.1 Hive的数据库DDL

Hive的数据库中相关的DDL语句与SQL基本一致,常见如下:

创建数据库:create database [if not exists] 数据库名

查看数据库:show databases

删除数据库:drop database [if exists] 数据库名

使用数据库:use 数据库名

2.2 Hive的数据表DDL

创建表:creat table 表名(colname, data_type,

​ colname, data_type, ​ .....) 或

create table 表名 like 已有表表名;

create table like select 语句;

查看表:show tables

查看表结构:desc 表名

查看建表语句:show create table 表名

删除表:drop table [if exists] 表名

修改表名:alter table 表名 rename to 新表名

字段编辑:添加字段:alter table 表名 add column [colname data_type, colname 2 data_type2 ....]

​ 修改字段名/类型 alter table 表名 change 旧字段名 新字段名 新字段类型

分区编辑:添加分区: alter table 表名 add partition (分区字段='分区字段数值')

​ 查看分区:show partitions 表名

​ 删除分区:alter table 表名 drop partition (分区字段='分区字段数值')

注:MySQL也可以分区,但一般不用,用数仓解决分区(后面内容详细解释数仓的分区);

2. 数据类型

2.1 类型

与MySQL数据库类型差异点:复合类字段

Array:同类型字段(data_type),都是数字类或字符串类型;

Map:组合类 (如:张三 北京;张三 18),可以组合不同类型字段

struct:结构体


2.2 数据类型转换

cast(列名 as 要转换的类型) ;

convert(数据类型,列名);

如果将浮点型的数据转换成int类型的,内部操作是通过round()或者floor()函数来实现的,而不是通过cast实现;

对于BINARY类型的数据,只能将BINARY类型的数据转换成STRING类型。如果你确信BINARY类型 数据是一个数字类型(a number),这时候你可以利用嵌套的cast操作;

对于Date类型的数据,只能在Date、Timestamp以及String之间进行转换。

3. 分隔符


4. 示例解释

-- 创建表create table emp(userid bigint,emp_name array<string>, -- 数组类型:外国人的名字包含 名 和 姓emp_date map<string,date>, -- 将入职日期和出生日期组合,入职日期和出生日期字段类型(key_value)为string,-- 其值本身(value_type)类型为dateother_info struct<deparment:string,gender:string>row format delimited -- 指定分隔符fields terminated by '\t' -- 字段分隔为\t,表示一个字段为一个制表位collection terminated by ',' -- 元素分隔符:将array/struct中各个字段用,隔开;将map中的key_value用,隔开map keys terminated by ':'   -- 将map类型的key和value用:隔开-- 三类分隔符指令都存在时,顺序不能错

表结果:

10011 为userid,字段类型bigint;

Mary Sluis为字段名和姓,用array组合,用字段用,隔开;

第三列为map组合,birthdate和from_date都是key_value, 为string字段,key_value 被,分隔;后面的日期分别为其值,值类型(value_type)为date,被: 分隔;

第四列为其他信息,字段被, 分隔;



本文由 mdnice 多平台发布

【Hive】Hive 创建表相关推荐

  1. hive中创建表失败

    使用create table命令创建表失败,如下错误信息: hive> create table test(id int,name string,age int,sex string); FAI ...

  2. hive 中创建表的三种方式

    官网地址:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL 通常我们所使用的创建hive表有三种方式 1.crea ...

  3. Hive数据库创建表

    HIVE 基本操作 create table 总述 CREATE TABLE 创建一个指定名字的表.如果相同名字的表已经存在,则抛出异常:用户可以用 IF NOT EXIST 选项来忽略这个异常. E ...

  4. 【Hive】建表时的存储格式

    目录 一.简介 1.hive建表时存储格式 2.五种存储格式的区别 二.实践操作 1.textfile 2.sequencefile 3.rcfile 4.orc 5.parquet 三.适用场景 一 ...

  5. hive根据已有表创建新表_Hive基础之创建表

    1.创建基础表 在这个网页里详细记录了创建表的每个语法,下面就一一来看这些创建表的语法内容: CREATE TABLE [IF NOT EXISTS] [db_name.]table_name ``[ ...

  6. 学习笔记Hive(三) —— Hive应用(1)—— 数据库定义、创建表

    一.任务讲解 泰坦尼克号乘客信息存储与分析 泰坦尼克号乘客信息存储与分析: 创建乘客信息表 导入数据到表中 统计获救与死亡情况 统计舱位分布情况 统计港口登船人数分布情况 统计性别与生存率的关系 统计 ...

  7. Hive基本操作,DDL操作(创建表,修改表,显示命令),DML操作(Load Insert Select),Hive Join,Hive Shell参数(内置运算符、内置函数)等

    1.  Hive基本操作 1.1DDL操作 1.1.1    创建表 建表语法 CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_nam ...

  8. HIVE的安装配置、mysql的安装、hive创建表、创建分区、修改表等内容、hive beeline使用、HIVE的四种数据导入方式、使用Java代码执行hive的sql命令

    1.上传tar包 这里我上传的是apache-hive-1.2.1-bin.tar.gz 2.解压 mkdir -p /home/tuzq/software/hive/ tar -zxvf apach ...

  9. shell 创建表 连接db2_大数据技术之SparkSQL(七)连接Hive数据库

    Apache Hive是Hadoop上的SQL引擎,Spark SQL编译时可以包含Hive支持,也可以不包含.包含Hive支持的Spark SQL可以支持Hive表访问.UDF(用户自定义函数)以及 ...

  10. hive 创建表_2min快速了解,Hive内部表和外部表

    在了解内部表和外部表区别前, 我们需要先了解一下Hive架构 : 大家可以简单看一下这个架构图,我介绍其中要点: Hive的数据分为两种,一种为普通数据,一种为元数据. 元数据存储着表的基本信息,增删 ...

最新文章

  1. Linux内核分析--理解进程调度时机、跟踪分析进程调度和进程切换的过程
  2. 重温ES6核心概念和基本用法
  3. POJ - 1961 最小循环节
  4. Abbirb120型工业机器人_ABB工业机器人-ABBIRB120结构介绍
  5. 【洛谷1361】 小M的作物(最小割)
  6. 计算机安全事故由谁整改,信息安全检查整改方案 整改方案 .doc
  7. Eclipse console 编码设置
  8. ORA-00257归档日志写满的解决方法
  9. Java模板回调函数,模板方法与回调函数
  10. 超级电容怎么才能把内阻做小_超级电容器内阻测定方法
  11. OJ密码岛 1243.谢尔宾斯基三角形
  12. 用gambit学博弈论--完全信息动态博弈-参与者信息集、博弈树上虚线的解释(三)
  13. python文本文件操作诗句给上一句输出下一句_使用RNN生成文本实战:莎士比亚风格诗句...
  14. 颜色搭配、前端素材模板、JS、MUI、java、微信小程序相关地址
  15. 股票的股息与股价对比
  16. Waiting ten thousand years for Love
  17. 大话存储-学习总结-4-磁盘阵列以及存储系统(DAS、SAN和NAS)
  18. java day37 mysql+Servlet(数据显示与删除)
  19. Unity Shader入门精要--第4 章 学习Shader 所需的数学基础:点和矢量
  20. [原创] java爬虫构建自己的比价系统

热门文章

  1. JAVA计算机毕业设计诗歌分享平台源码+系统+mysql数据库+lw文档
  2. 生老病死,一切都有定数
  3. java实现网上支付_java编写一个网上支付系统界面
  4. 基于VMware_vSphere的银行虚拟化平台设计 ——网络存储课程设计
  5. SQLServer入门基础(SQL语句)
  6. Python基础知识大全(适用于全面复习Python语法知识)
  7. Android NDK开发之旅(3): 详解JNI数据类型与C/C++、Java之间的互调
  8. STM32 PA15始终为高电平
  9. 多线程并发的一些解决思路
  10. web程序在线更新实现