0

hive数据导入:文件导入

 2 years ago
source link: https://blog.51cto.com/u_14177015/5147223
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

hive数据导入:文件导入

原创

怀瑾握瑜的嘉与嘉 2022-03-25 11:25:57 ©著作权

文章标签 hive hdfs hadoop 文章分类 Hive 大数据 阅读数869

hive数据导入:文件导入_hdfs

本文介绍hive数据导入的一种方法,从文件导入。

1. 从本地文件系统导入数据到hive表

PS.注意,该方法已经在hdp3.x中不支持使用,所以这里不详细说明

基础语法如下:

LOAD DATA LOCAL INPATH "path" [OVERWRITE] INTO TABLE tablename;

通过指定本地路径(服务器)直接导入到表中

load data local inpath '/home/hdfs/a.txt' into table temp

2. 从HDFS上导入数据到hive表

2.1 创建好数据表

CREATE EXTERNAL TABLE if not exists xxx_temp(
id string comment "",
name int COMMENT ""
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE;

该表的含义是数据内容使用逗号“,”分隔,存储类型为默认的文本格式

2.2 准备好要导入数据的文件

1,2
3,4
5,6

注意,如果你的数据是通过一定渠道导出的(比如yanagishima),可能第一行是字段,注意去掉,要不也会一并导入

2.3 上传文件到hdfs上

# hadoop fs -put a.txt /tempData/

2.4 连接hive并且导入数据到表

hive> load data inpath '/tempData/a.txt' into table xxx_temp;
hive> select * from xxx_temp;

与本地文件的导入方式相比,只是把关键字“local”去掉

注意文件必须要放到hdfs上面,并且hdfs用户有访问权限

3. 拷贝文件数据

如果是一些静态表,或者只是想数据进行迁移,可以把原始数据从hdfs上下载下来,然后再新的表里重新上传

# hadoop fs -ls /warehouse/tablespace/external/hive/xx.db/xxx_temp
-rw-rw-rw-+ 3 hdfs hadoop 7023975 /warehouse/tablespace/external/hive/xxx.db/xxx_temp/000000_0
-rw-rw-rw-+ 3 hdfs hadoop 7013810 /warehouse/tablespace/external/hive/xxx.db/xxx_temp/000001_0
-rw-rw-rw-+ 3 hdfs hadoop 7029668 /warehouse/tablespace/external/hive/xxx.db/xxx_temp/000002_0
-rw-rw-rw-+ 3 hdfs hadoop 7021533 /warehouse/tablespace/external/hive/xxx.db/xxx_temp/000003_0
-rw-rw-rw-+ 3 hdfs hadoop 7035739 /warehouse/tablespace/external/hive/xxx.db/xxx_temp/000004_0
-rw-rw-rw-+ 3 hdfs hadoop 7033479 /warehouse/tablespace/external/hive/xxx.db/xxx_temp/000005_0
# hadoop fs -get /warehouse/tablespace/external/hive/xx.db/xxx_temp/*
# hadoop fs -put /warehouse/tablespace/external/hive/xx.db/xxx_temp_new/*

如果插入数据的表是分区表,注意文件导入后刷新分区

hive> msck repair table xxx_temp_new;

如果您喜欢我的文章,可以[关注⭐]+[点赞👍]+[评论📃],您的三连是我前进的动力,期待与您共同成长~

可关注公众号【怀瑾握瑜的嘉与嘉】,获取资源下载方式

  • 收藏
  • 评论
  • 分享
  • 举报

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK