问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Hive几种数据导入方式和动态分区,多表插入

发布网友 发布时间:2022-04-23 06:28

我来回答

1个回答

热心网友 时间:2022-04-13 16:02

常用的的有三种:
1.从本地文件系统中导入数据到Hive表;
2.从HDFS上导入数据到Hive表;
3.在创建表的时候通过从别的表中查询出相应的记录并插入到所创建的表中。
Hive配置:
HDFS中Hive数据文件存放目录(启动hive后HDFS自动创建):
HDFS: /usr/hive/warehouse
hadoop fs -mkdir /usr/hive/warehouse 命令创立
本地数据存放目录:
本地:/home/santiago/data/hive
一.从本地文件系统中导入数据到Hive表
1.在hive中建表
hive> show databases;
OKdefaultTime taken: 1.706 seconds, Fetched: 1 row(s)
hive> create table guo_test(Name string,String string)
> row format delimited
> fields terminated by ','
> stored as textfile;
hive> show tables;
OK
guo_test
Time taken: 0.024 seconds, Fetched: 1 row(s)123456789101112

2.在本地文件建立同类型数据表
santi@hdp:~/data/hive$ ls
hive_test.txt
santi@hdp:~/data/hive$ cat hive_test.txt
santi,you are a zhazha.1234

3.导入数据并测试
hive>load data local inpath '/home/santi/data/hive/hive_test.txt' into table guo_test;
hive> select * from guo_test;
hive>dfs -ls /usr/hive/warehouse/guo_test;

#hadoop fs -ls /usr/hive/warehouse
Found 1 items
drwxrwxr-x - santiago supergroup 0 2017-01-14 21:13
/usr/hive/warehouse/guo_test12345678

发现hive-site,xml设置的HDFS文件存储位置中多了guo_test这个文件夹
#hadoop fs -ls /usr/hive/warehouse/guo_test
Found 1 items-rwxrwxr-x 1 santiago supergroup 24 2017-01-14 21:13
/usr/hive/warehouse/guo_test/hive_test.txt

hive> select * from guo_test;
OK
santi you are a zhazha.12345678

在该文件夹中找到了所写入hive数据仓库的文件。
[注]本地数据写入成功,但是从本地将数据导入到Hive表的过程中,其实是先将数据临时复制到HDFS的一个目录下(典型的情况是复制到上传用户的HDFS home目录下,比如/home/santi/),然后再将数据从临时目录下移动到对应的Hive表的数据目录里面(临时目录不保留数据)。
二.从HDFS文件系统中导入数据到Hive表
1.在HDFS文件系统上建立数据文件
hdfs上没有vim命令,则需要将本地数据文件手动传入到HDFS上
/data/hive# vim data_HDtoHive/data/hive# cat data_HDtoHivedata from, HDFS to Hive #hadoop fs -put /home/santi/data/hive/data_HDtoHive /usr/data/input//数据传入# hadoop fs -ls /usr/data/input12345

2导入数据
hive> load data inpath '/usr/data/input/data_HDtoHive' into table guo_test;
hive> select * from guo_test;
OK
data from HDFS to Hive
santi you are a zhazha.
Time taken: 0.172 seconds, Fetched: 2 row(s)123456

数据写入成功
数据存hive配置的数据存储位置中。
[注]
从本地导入数据语句为
hive>load data local inpath ‘/home/santi/data/hive/hive_test.txt’ into table guo_test;
从HDFS中导入数据的语句为
hive> load data inpath ‘/usr/data/input/data_HDtoHive’ into table guo_test;
差距在local这个命令这里。
而从HDFS系统上导入到Hive表的时候,数据转移。HDFS系统上查找不到相关文件。
三.从HIVE表选取数据插入新的HIVE表
命令为create table 表名 as selecr xxx from 表名。
hive> create table hivedata_test1
> as
> select name
> from guo_test;
hive> select * from hivedata_test1;
OK
data fromsanti
Time taken: 0.116 seconds, Fetched: 2 row(s)123456789

[注]hive是分区表有稍微区别
在Hive中,表的每一个分区对应表下的相应目录,所有分区的数据都是存储在对应的目录中。比表有a和b两个分区,则对应a=xxx,b=xx对应表的目录为/user/hive/warehouse/a=xxx
user/hive/warehouse/b=xx,所有属于这个分区的数据都存放在这个目录中。
hive> create table hivedata_test2(
> Name string)
> partitioned by
> (String string)
> ROW FORMAT DELIMITED
> FIELDS TERMINATED BY ','> STORED AS TEXTFILE;

hive> insert into table hivedata_test2
> partition(String='best')
> select Name
> from guo_test;
hive> select * from hivedata_test2;
OK
data from best
santi best
Time taken: 1.549 seconds, Fetched: 2 row(s)# hadoop fs -ls /usr/hive/warehouse/hivedata_test2Found 1 items
drwxrwxr-x -santiago supergroup 0 2017-02-14 17:40
/usr/hive/warehouse/hivedata_test2/string=best
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我要问一下掇刀医保局恢复正常上班吗? 医保卡是东宝区的怎么才能转到掇刀区 东宝人社局 医保局 空调扇和风扇有什么区别 ...上了技校,现在上了电大的大专,档案在自己手里怎么办? 高职扩招的档案从哪里来 专科没有毕业档案怎么办 技校没上完考上专科,档案怎么转 凉薯和红薯有什么区别 凉薯和山药一样吗 我是一名教师 评职称发表论文 不知道网上哪些机构好点 具体? hive表的动态分区怎么实现 hive与beehive的区别 hive 动态分区后可以指定reduce数吗 hive启动元数据库,为什么会卡住不动 hive动态分区和静态分区的区别 hive动态分区参数配置 利用sql怎么设置 Hive 是什么意思? hive 什么意思? vivo手机系统更新后充电慢速 vivox27系统怎么恢复原来的,升级后充电不正常自动掉线,没有双引擎充电? vivo手机换系统后充电灯为什么会变成绿色? vivo x shot手机升级系统后充电速度变慢 vivox9更新系统后耗电变快,怎么解决? vivo系统更新后充电慢 vivo,x21之前换过一个尾插充电口以后更新系统充电就不变绿色啦,是不... iqoo9升级版本系统后,充电很热充电变慢 vivox5sl手机系统更新了以后充电冲的速度变慢了是怎么回事 为什么vivo x9splus更新PD1635_A_8.20.0系统后充电速度慢了很多? vivox70pro+系统更新后充电特热 我手机更新系统后怎么充电的时候不显示闪充了? hive运行sql reduce 为1 ,跑不动怎么处理? hadoop和hive之间有什么关系? 苹果11要不要升级ios13.1.3? 如何配置hive,使hive能使用spark引擎 Apache Hive的工作原理是什么? 在Hive中如何实现数据分区 如何快速把hdfs数据动态导入到hive表 hive1和hive2的区别 hive表会自动缩小吗 急救包怎么用? 急救包里有什么东西? 家用急救包都需要什么药物? 家庭急救包的用途有哪些? 第一次玩吃鸡,手机版的,有个急救包怎么用 绝地求生急救包怎么用?急救包的用法 家庭急救包有什么用途? 家庭用急救包,应该装什么东西? 标准的急救箱里面应该有什么东西 急救包是什么? cataclysmdda 怎么使用急救包