hive 导出json格式 文件_Hive 系列 之 基本操作合集

daa1456e6389023d1c41e13fafe34633.png

下面是本课程概览:

(1)hive系列之简介,安装,beeline和hiveserver2

(2)hive系列之基本操作

(3)hive系列之udf

(4)hive系列之二级分区和动态分区

(5)hive系列之分桶表

(6)hive系列之常用函数

(7)hive系列之系统讲解开窗函数

(8)hive系列之存储格式及常用压缩格式

(9)hive系列之数据仓库建模理论

(10)hive系列之数据仓库建模-维度表和事实表

(11)hive系列之数据仓库建模-退化维度和缓慢变化维

(12)hive系列之常用企业性能优化1

(13)hive系列之常用企业性能优化2

(14)hive系列之常用企业性能优化3

今天是第二讲,Hive 的基本操作

今天的内容比较多,也比较枯燥,尽可能对着操作一遍,加深认识

01

数据库相关

1.创建数据库

create database db_hive;

create database if not exists db_hive;

2.创建数据库到指定目录下

create database if not exists db_hive_03 location '/user/wangkai/hive/warehouse/db_hive03.db';

3.显示当前所有的数据库

show databases;

4.查看数据库描述

desc database db_hive;

5.删除数据库就不说了,很危险

02

数据类型

1、基本类型

aaa58e1c4ee907802c32383971f5f408.png

这里着重说一下 TIMESTAMP

TIMESTAMP 类型的主要作用是在数据比较的效率上比较高

TIMESTAMP 类型 ,其对应的格式为:yyyy-MM-dd HH:MM:SS,从文件中导入时,必须满足这个格式的才能导入,否则显示为null

比如现在建一个表

create table dw.t_date (

t1 date,

t2 timestamp

)

comment '日期测试表'

row format delimited

fields terminated by ',';

创建文件提交到 hdfs 上

文件内容:

2019-09-01,2019-09-01 11:12:00

2019-08-01,2019-09-01 12:00

加载到表中

LOAD DATA INPATH '/tmp/datetest/date.txt' into TABLE dw.t_date;

4e2699ab6edf5b240cd99491b0d301db.png

最终t2不满足格式,所以显示了null

Hive 中比较常用的时间相关的udf :

unix_timestamp() 返回当前的时间戳

unix_timestamp('2019-09-01 11:10:10') 返回指定日期的时间戳

from_unixtime(1567307471) 返回 yyyy-MM-dd HH:MM:SS 格式的字符串

2、复杂类型

ARRAY、Map、struct、union,这些复杂类型是由基础类型构成的

(1) Array

表示数组,是具有相同类型的变量的集合,这些变量称为数组的元素,每个元素都有下标,从0开始

如下,我们建一张 person 表,名字、工作地点、爱好

create table dw.person(

name string,

work_locations array<string>,

other_info map<string,string>,

other_info2 struct<one:string,two:int>

)

row format delimited

fields terminated by ','

collection items terminated by '|'

map keys terminated by ':';

字段的分隔符是 ,

集合(数组和map)元素的分隔符是 |

map或者struct 的 键值对分隔符是 :

测试数据如下:

dd864fe7c1bc3c35a5ecb71dedb5830f.png

导入到表中

285eb550fa68bf5dc18c54b278671f97.png

查询第一个工作地点:

select name,work_locations[0] from dw.person;

e83b1401de57dc2f1483686da807536f.png

(2) Map

是一组键值对元组集合,使用数组表示法,map['first'] 可以获取值

比如上面的表中,查询性别

select name,other_info['sex'] from dw.person;

534c7e6816dd16d07cdc380855f44a3a.png

(3)Struct

是不同类型元素的集合,可以用 点 描述符来取元素

select name,other_info2.one from dw.person;

79f9b70855ee5afa61fb5593745ee3aa.png

03

内部表、外部表、分区表

1、内部表和外部表的区别

(1)未被 external 修饰的是内部表,被 external 关键字修饰的是外部表

(2)内部表由 Hive 自身管理,外部表由 HDFS 管理(也就是数据在别的目录下,但元数据还是由 Hive 管理的)

(3)内部表数据的存储位置是:hive.metastore.warehouse.dir(默认是:/user/hive/warehouse),外部表数据的存储位置由自己制定

(4)删除内部表会直接删除元数据和存储在表下面的数据,而删除外部表只会删除元数据,HDFS 上的数据并不会被删除

2、分区表

为了对表进行合理的管理,以及提高查询的效率,Hive 可以将表组织成分区,一个分区实际上就是一个目录,一个表可以在多个维度上创建分区,分区之间的关系,就是目录树的关系。

就是在系统上创建文件夹,把分类数据放在不同的文件夹下,加快查询速度。

比如创建日期和公司两个分区,那么就可以指定查询某个月某个公司的数据,而不同全表扫描

3、实战

(1)内部表

上面建的dw.person 就是内部表,hive 会在 hdfs 文件上创建一个目录,删除表的时候,目录下的数据也会被删除

(2)外部表

使用关键字 external

create external table dw.t_test2 (

c1 string,

c2 string

)

如果没有指定位置,hive 会生成一个目录,如果指定了位置,那么不会创建目录

create external table dw.t_test3 (

c1 string,

c2 string

)

location '/tmp/person';

删除表,并不会删除 hdfs 文件的

(3)分区表

create table dw.t_test4 (

c1 string,

c2 string

)

partitioned by (appId string)

新增分区

alter table dw.t_test4 add partition(appId='app');

会在hdfs上新增一个目录

(4)外部分区表

顾名思义,即是外部表,又是分区表

create external table dw.t_test5 (

c1 string,

c2 string

)

partitioned by (appId string);

给外部分区表添加记录

alter table dw.t_test4 add partition(appId='app') location '/tmp/test1';

04

其他建表方式

1.用查询出来的数据建表

create table IF NOT EXISTS dw.log_20170629_2

AS select ip,user from dw.log_20170629;

2.仅仅创建已有表的表结构

create table IF NOT EXISTS dw.log_20170630

like dw.log_20170629;

05

加载和导出数据

1.加载数据

(1)这个命令是从本地拷贝文件到集群上,如果文件存在,则会重命名新增一份文件

load data local inpath '/opt/datas/student.txt' into table dw.student;

(2)加载数据并覆盖原有数据,会删除原有文件,再拷贝

load data local inpath '/opt/datas/student.txt' overwrite into table dw.student;

(3)加载数据到分区表

load data local inpath '/home/hadoop/data/emp.txt' into table dw.emp_partition partition (month='201509');

(4)加载hdfs数据,从hdfs移动数据到集群上

load data inpath '/opt/datas/student.txt' into table dw.student;

2.导出数据

(1)导出文件到本地目录

insert overwrite local directory '/home/hadoop/data/hive_exp_emp2'

ROW FORMAT DELIMITED FIELDS TERMINATED BY 't'

select * from default.emp;

(2)hive命令

bin/hive -e "select * from default.emp;" > /opt/datas/exp_res.txt

(3)导出到hdfs中

insert overwrite directory '/user/wangkai/hive/hive_exp_emp'

ROW FORMAT DELIMITED FIELDS TERMINATED BY 't' COLLECTION ITEMS TERMINATED BY 'n'

下一篇是 hive 的 udf ,持续关注 kk大数据 噢

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/531862.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android开发自定义view倍丝曲线,从0到1Android自定义View(四)贝塞尔曲线

原标题&#xff1a;从0到1Android自定义View(四)贝塞尔曲线2017年安卓巴士全球开发者论坛-上海站作者本文由两点水投稿&#xff0c;博客地址&#xff1a;http://www.apkbus.com/myspaceblog-911082.html前言扯来扯去&#xff0c;前面三篇自定义 View 文章&#xff0c;终于扯完了…

ios kvo 要引入_腾讯社招iOS面试记录

毕业好几年了&#xff0c;上周发送了简历给腾讯&#xff0c;参加了腾讯面试。具体部门这边就不说了。这次面试还是收获到了很多。一面电话面试&#xff1a;面试官主要是针对iOS相关的基础问题。先简单自我介绍一下自己对mrc和arc的理解谈谈对自动释放池的理解自动释放池在mrc和…

html 中加号的表示方法,CSS的+(加号)选择器怎么用

在CSS中“”符号选择器用于选择紧跟在指定元素之后但不在特定元素内部的元素。下面本篇文章就来具体介绍一下&#xff0c;希望对大家有所帮助。“”符号选择器在CSS中“”符号选择器被称为相邻兄弟选择器&#xff0c;用于选取在同一父元素下的&#xff0c;紧跟指定元素之后的另…

华为新系统 鸿蒙,旗舰CPU+鸿蒙OS!华为Mate家族重磅新品来袭

我们常说安卓平板的生态跟苹果iPad有很大差距&#xff0c;不论是应用质量还是原生系统支持&#xff0c;苹果都做的更好一些。可能也是因为这个原因&#xff0c;因此安卓平板&#xff0c;尤其是旗舰级别的平板至今除了三星之外&#xff0c;也就只有华为在做。作为安卓阵营两大厂…

mysql中用来取余数的函数是_MySQL常用函数-单行处理函数-字符串处理函数(更新中...)...

本篇文章用到的数据库表/* SQLyog Ultimate v12.09 (64 bit) MySQL - 5.7.23-log : Database - myemployees ********************************************************************* *//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE*/;/*!40014 SET OLD_UNIQUE_CHECKSUN…

html盒子模型页面居中,【静态页面架构】CSS之盒子模型

CSS架构盒子模型&#xff1b;以内容区(显示文本和图像)内边距(内容区至边距的距离)边距(内容区的边界)外边距(元素的边框之间的距离)1.边距&#xff1b;border属性&#xff1b;简写属性用来设置边距的上(top)右(right)下(bottom)左(left)。宽度&#xff0c;颜色和样式div{width…

最强动画制作人书包_声优访谈丨恋与制作人动画中配声优访谈——夏磊

亲爱的制作人们&#xff1a;距离恋与制作人动画上线还有6天&#xff01;今天的中配声优访谈嘉宾是在动画中为许墨献声的夏磊老师~固定布局 工具条上设置固定宽高背景可以设置被包含可以完美对齐背景图和文字以及制作自…

codesys com库_CoDeSys官方系统库在线下载,替换国内下载服务器教程

欢迎加入工控分享技术服务社区推荐阅读Codesys学习资料大全Codesys控制器关于CANopen总线的详细应用说明当你软件报以下错误&#xff0c;你可以直接下载&#xff0c;如果下载不成功&#xff0c;可以换个网络试一试&#xff0c;或者进行下面的操作。由于国内网络问题&#xff0c…

centos7恢复mysql数据库_MySQL数据库升级迁移填坑记

原库&#xff1a;*.*.101.73/74 系统环境: Suse 12.4MySQL: 5.7.29新库&#xff1a;*.*.110.46/47系统环境&#xff1a;CentOS7.7 64位MySQL版本: 5.7.30[一、数据库升级迁移场景]因业务侧在*.*.101.73/74 mysql数据库服务器上部署了java应用程序、HadoopHbase数据库等大数据…

so把asp页面生成静态的html,23、asp系列课程--server.URLEncode方法和server.HTMLEncode方法...

作者&#xff1a;杨凡来自&#xff1a;杨凡博客地址&#xff1a;blog.sina.com.cn/aboutshisanserver.URLEncode方法和server.HTMLEncode方法可以对字符串进行编码。我们一个一个的说。server.URLEncode可以对字符串进行URL编码转换&#xff0c;语法格式为&#xff1a;server.u…

下列关于html5表单的多样输入方式,IT兄弟连 HTML5教程 HTML5表单 多样的输入类型1...

原标题&#xff1a;IT兄弟连 HTML5教程 HTML5表单 多样的输入类型1HTML5拥有多个新的表单输入类型&#xff0c;这些新特性提供了更好的输入控制和验证。并不是所有的主浏览器都支持新的input类型&#xff0c;不过我们可以在所有的主浏览器中使用它们&#xff0c;即使不被支持&a…

v7000更换电池步骤_ups电源运行中是否可以更换电池?应如何操作呢

ups电源在日常使用中除了日常维护工作之外&#xff0c;对于使用达到一定年限的时候&#xff0c;内部使用的ups蓄电池就需要更换了&#xff0c;很多人以为ups不间段电源在工作的时候是可以跟换电池。其实&#xff0c;这个具体就需要看ups电源设计的原理&#xff0c;不同厂家设计…

华为怎么用手机看时间到读秒_华为手机灭屏也可以看时间?其实设置方法很简单,不会有些可惜了...

华为作为手机界名副其实的大佬&#xff0c;而且华为手机的口碑也是非常不错的。那么为什么会有这么多人喜欢华为手机呢&#xff1f;主要是华为手机的质量高&#xff0c;并且用很多实用的小功能&#xff0c;比如说神奇的灭屏显示功能等等&#xff0c;今天就给大家分享几个华为手…

hive转16进制unhex_Java 进制的转换

什么是进制&#xff1f;进制也就是进位计数制&#xff0c;是人为定义的带进位的计数方法(有不带进位的计数方法&#xff0c;比如原始的结绳计数法&#xff0c;唱票时常用的“正”字计数法&#xff0c;以及类似的tally mark计数)。 对于任何一种进制---X进制&#xff0c;就表示每…

引入ui组件_Vuejs, Semantic CSS前端框架fish-ui

简介基于vue2.0, github star 690, 一款小众的UI框架fish-ui&#xff0c;直接上截图&#xff1a;主要特性配备Vue.js&#xff0c;Moment&#xff0c;Vue-Router&#xff0c;ES6和Babel 6使用Webpack 2.0和Vue LoaderSemantic CSS 组件使用 Less支持现代浏览器快速开发安装npm i…

减去字符串_从文本字符串中提取指定值的6个超级技巧解读

在实际的工作中&#xff0c;从指定的字符串中提取指定文本也是常用的技巧之一&#xff0c;除了手动操作之外&#xff0c;下文的8种应用技巧也是必须要掌握的。一、Left函数法。功能&#xff1a;从指定文本字符串的第一个字符开始&#xff0c;提取指定长度的字符串。语法结构&am…

如果用计算机录制歌曲需要,网络歌手怎么用电脑录音软件录歌

现在网上有很多网络歌手主要分为两类&#xff0c;一类是原创&#xff0c;一类是翻唱。可是不管是原创还是翻唱都需要自己唱歌录歌&#xff0c;要有属于自己的歌曲(自己唱的)。要录歌就要有设备&#xff0c;毕竟网路歌手刚开始大多数都是草根没有钱找音乐工作室&#xff0c;只能…

中国剩余定理证明过程

原网址&#xff1a;http://blog.csdn.net/wtq493841534/article/details/5452720 中国剩余定理 中国剩余定理可以描述为&#xff1a; 若某数x分别被d1、、…、dn除得的余数为r1、r2、…、rn&#xff0c;则可表示为下式&#xff1a;xR1r1R2r2…RnrnRD其中R1是d2、d3、…、dn的公…

关闭浏览器前提示_win7系统ie总弹出查看和跟踪下载的关闭方法

今天小编给大家分享的是win7系统ie总弹出查看和跟踪下载的关闭方法&#xff0c;使用ie浏览器上网的时候&#xff0c;有些用户会遇到ie总弹出查看和跟踪下载的窗口&#xff0c;很多用户想关闭掉此提示&#xff0c;却不知如何关闭查看和跟踪下载的窗口&#xff0c;那么请参照以下…

html引入百度地图报错,vue引入百度地图BMapGL,或者其他个性化地图

3.jpgvue的百度地图早就有vue-baidu-map这里就不赘述了&#xff0c;自己去直接对着API写就好了&#xff0c;基本上已经满足绝大多数需求了还简单方便。vue-baidu-map 传送门 https://dafrok.github.io/vue-baidu-map/#/zh/index这里主要是在vue里面引入BMapGL&#xff0c;或者其…