Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >通过多种方式将数据导入hive表

通过多种方式将数据导入hive表

作者头像
闵开慧
发布于 2018-04-02 04:16:52
发布于 2018-04-02 04:16:52
1K0
举报
文章被收录于专栏:闵开慧闵开慧

hive官方手册 http://slaytanic.blog.51cto.com/2057708/939950

通过多种方式将数据导入hive表

1.通过外部表导入

用户在hive上建external表,建表的同时指定hdfs路径,在数据拷贝到指定hdfs路径的同时,也同时完成数据插入external表。 例如: 编辑文件test.txt $ cat test.txt  1       hello 2       world 3       test 4       case 字段之间以'\t'分割 启动hive: $ hive 建external表: hive> CREATE EXTERNAL TABLE MYTEST(num INT, name STRING)     > COMMENT 'this is a test'     > ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'     > STORED AS TEXTFILE     > LOCATION '/data/test'; OK Time taken: 0.714 seconds hive> show tables; OK mytest partition_test partition_test_input test Time taken: 0.07 seconds hive> desc mytest ; OK num     int name    string Time taken: 0.121 seconds| 数据拷贝到hdfs: $ Hadoop fs -put test.txt /data/test 查看hive表数据: hive> select * from mytest; OK 1       hello 2       world 3       test 4       case Time taken: 0.375 seconds hive> select num from mytest; Total MapReduce jobs = 1 Launching Job 1 out of 1 ...... Total MapReduce CPU Time Spent: 510 msec OK 1 2 3 4 Time taken: 27.157 seconds 这种方式常常用于当hdfs上有一些历史数据,而我们需要在这些数据上做一些hive的操作时使用。这种方式避免了数据拷贝开销

2.从本地导入

数据不在hdfs上,直接从本地导入hive表 文件/home/work/test.txt内容同上 建表: hive> CREATE TABLE MYTEST2(num INT, name STRING)     > COMMENT 'this is a test2'                               > ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'          > STORED AS TEXTFILE;   OK Time taken: 0.077 seconds 导数据入表: hive> LOAD DATA LOCAL INPATH '/home/work/test.txt' INTO TABLE MYTEST2; Copying data from file:/home/work/test.txt Copying file: file:/home/work/test.txt Loading data to table default.mytest2 OK Time taken: 0.24 seconds 查看数据: hive> select * from MYTEST2; OK 1       hello 2       world 3       test 4       case Time taken: 0.11 seconds

这种方式导入的本地数据可以是一个文件,一个文件夹或者通配符,需要注意的是,如果是文件夹,文件夹内不能包含子目录,同样,通配符只能通配文件。

3.从hdfs导入

上述test.txt文件已经导入/data/test 则可以使用下述命令直接将数据导入hive表: hive> CREATE TABLE MYTEST3(num INT, name STRING)     > COMMENT "this is a test3"     > ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'     > STORED AS TEXTFILE; OK Time taken: 4.735 seconds hive> LOAD DATA INPATH '/data/test/test.txt' INTO TABLE MYTEST3; Loading data to table default.mytest3 OK Time taken: 0.337 seconds hive> select * from MYTEST3 ; OK 1       hello 2       world 3       test 4       case Time taken: 0.227 seconds

4. 从其它表导入数据:

hive> CREATE EXTERNAL TABLE MYTEST4(num INT) ; OK Time taken: 0.091 seconds hive> FROM MYTEST3 test3     > INSERT OVERWRITE TABLE MYTEST4     > select test3.num where name='world'; Total MapReduce jobs = 2 Launching Job 1 out of 2 Number of reduce tasks is set to 0 since there's no reduce operator Starting Job = job_201207230024_0002, Tracking URL = http://localhost:50030/jobdetails.jsp?jobid=job_201207230024_0002 Kill Command = /home/work/hadoop/hadoop-1.0.3/libexec/../bin/hadoop job  -Dmapred.job.tracker=localhost:9001 -kill job_201207230024_0002 Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 0 2012-07-23 18:59:02,365 Stage-1 map = 0%,  reduce = 0% 2012-07-23 18:59:08,417 Stage-1 map = 100%,  reduce = 0%, Cumulative CPU 0.62 sec 2012-07-23 18:59:09,435 Stage-1 map = 100%,  reduce = 0%, Cumulative CPU 0.62 sec 2012-07-23 18:59:10,445 Stage-1 map = 100%,  reduce = 0%, Cumulative CPU 0.62 sec 2012-07-23 18:59:11,455 Stage-1 map = 100%,  reduce = 0%, Cumulative CPU 0.62 sec 2012-07-23 18:59:12,470 Stage-1 map = 100%,  reduce = 0%, Cumulative CPU 0.62 sec 2012-07-23 18:59:13,489 Stage-1 map = 100%,  reduce = 0%, Cumulative CPU 0.62 sec 2012-07-23 18:59:14,508 Stage-1 map = 100%,  reduce = 100%, Cumulative CPU 0.62 sec MapReduce Total cumulative CPU time: 620 msec Ended Job = job_201207230024_0002 Ended Job = -174856900, job is filtered out (removed at runtime). Moving data to: hdfs://localhost:9000/tmp/hive-work/hive_2012-07-23_18-58-44_166_189728317691010041/-ext-10000 Loading data to table default.mytest4 Deleted hdfs://localhost:9000/user/hive/warehouse/mytest4 Table default.mytest4 stats: [num_partitions: 0, num_files: 1, num_rows: 0, total_size: 2, raw_data_size: 0] 1 Rows loaded to mytest4 MapReduce Jobs Launched:  Job 0: Map: 1   Accumulative CPU: 0.62 sec   HDFS Read: 242 HDFS Write: 2 SUCESS Total MapReduce CPU Time Spent: 620 msec OK Time taken: 30.663 seconds hive> select * from mytest4; OK 2 Time taken: 0.103 seconds

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Sqoop导入MySQL所有表到Hive
默认是导入到default数据库中,如果想指定导入到某个数据库中,可以使用–hive-database参数
程裕强
2022/05/06
10.7K0
Sqoop导入Oracle数据表到Hive
因为指定了-m 4,也就是4个map处理,-m > 1 必须有主键。因为这个表没有主键,所以需要需要设置-m 1
程裕强
2022/05/06
2.7K0
Hadoop基础教程-第11章 Hive:SQL on Hadoop(11.3 Hive 快速入门)
该文介绍了如何利用Rust开发WebAssembly项目,并介绍了WebAssembly的基本概念、基于Rust的WebAssembly项目如何构建以及如何使用Rust编写WebAssembly代码。此外,文章还介绍了如何使用WebAssembly构建Web应用程序,并提供了示例代码。
程裕强
2018/01/02
9070
Hive-1.2.1_02_简单操作与访问方式
1、Hive创建表格报【Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask.
踏歌行
2020/10/15
4930
Hive-1.2.1_02_简单操作与访问方式
一脸懵逼学习Hive的使用以及常用语法(Hive语法即Hql语法)
该文介绍了关于数据库连接池的知识点,包括概念、特点、配置方式、调优参数和常见问题。同时,文章还提供了如何正确配置和优化数据库连接池的相关建议,以帮助开发人员更好地掌握和应用该技术。
别先生
2018/01/02
3.6K0
一脸懵逼学习Hive的使用以及常用语法(Hive语法即Hql语法)
Hadoop基础教程-第11章 Hive:SQL on Hadoop(11.6 HQL:DML数据操纵)(草稿)
该文介绍了如何利用Hadoop和Hive进行大数据分析。首先介绍了Hadoop和Hive的基本概念,然后详细讲解了如何使用Hadoop和Hive进行数据清洗、数据转换、数据加载和查询。最后,通过一个具体的实例演示了如何使用Hadoop和Hive进行数据分析。
程裕强
2018/01/02
5560
hadoop2-hive的安装和测试
========================================================
Hongten
2018/12/05
4320
hadoop2-hive的安装和测试
HIVE表中分区的删除
不过HIVE本身还提供一种机制,可以删除其中的分区。只要某一条记录在某个分区中,就可以实现用个“转弯”的方式来实现,即先删除分区,再手动去掉这条记录,再导入到分区中。
sparkexpert
2022/05/07
3.4K0
Hive动态分区之多分区
中文分区在hive中显示为乱码,但是不影响正常使用。Mysql中也会有显示乱码的情况,但是MySQL有一个names可以设置编码格式。
云飞扬
2021/12/31
2.5K0
Hive动态分区
hive提供了一个动态分区功能,其可以基于查询参数的位置去推断分区的名称,从而建立分区。
云飞扬
2021/12/31
2.6K0
Hive - Hadoop与SQL
Hive是什么 简单来说,通过 Hive 可以使用 SQL 来查询分析 Hadoop 中的大规模数据 Hive 的思路就是将结构化的数据文件映射为数据库表,然后把SQL语句转换为MapReduce任务来执行 下面看一个简单的示例,了解下 Hive 是怎么用的 hive> select count(*) from invites; 结果信息 ...... Total jobs = 1 Launching Job 1 out of 1 ...... Hadoop job information for Stag
dys
2018/04/04
1K0
Hadoop基础教程-第12章 Hive:进阶(12.5 Hive外表)(草稿)
第12章 Hive:进阶 12.5 Hive外表 12.5.1 准备数据 [root@nb0 data]# vi gen.sh [root@nb0 data]# cat gen.sh #!/bin/s
程裕强
2018/01/02
7030
Hadoop基础教程-第12章 Hive:进阶(12.1 内置函数)(草稿)
该文是关于Hive表类型和存储格式的介绍。主要说明了Hive表类型包括内表、外表、分区表、索引表、Text表、SequenceFile表、ORC表、Parquet表等,以及不同表类型之间的区别。同时,还介绍了Hive的存储格式,包括Text格式、SequenceFile格式、ORC格式、Avro格式、JSON格式、MessagePack格式、Thrift格式和ProtoBuf格式等。此外,还提供了相关命令和示例,以帮助用户更好地理解和掌握Hive表类型和存储格式。
程裕强
2018/01/02
9590
[Hadoop大数据]——Hive数据的导入导出
Hive作为大数据环境下的数据仓库工具,支持基于hadoop以sql的方式执行mapreduce的任务,非常适合对大量的数据进行全量的查询分析。 本文主要讲述下hive载cli中如何导入导出数据:
用户1154259
2018/01/17
3.9K0
[Hadoop大数据]——Hive数据的导入导出
Hive 本地执行模式
假设你正在运行一些复杂的 Hive 查询,我们都知道这会在后台触发 MapReduce 作业并为你提供输出。如果 Hive 中的数据比较大,这种方法比较有效,但如果 Hive 表中的数据比较少,这样会有一些问题。出现此问题的主要原因是 MapReduce 作业被触发,它是在服务器/集群上触发,因此每次运行查询时,它都会上传到服务器并在那里启动 MapReduce,然后输出。因此,为查询触发执行任务的时间消耗可能会比实际作业的执行时间要多的多。
smartsi
2019/08/07
3.1K0
写入数据到Hive表(命令行)
搭建好Hadoop和Hive的运行环境之后,首先考虑到的,就是如何将数据写入到HIVE中。这篇文章将简单、快速地介绍如何通过命令行的方式,使用insert...values、load、insert...select 语句将数据写入到hive表重。并讲解了在写入数据时遇到的问题:多个小文件,以及相应的解决方案。
张子阳
2018/09/28
9.2K0
写入数据到Hive表(命令行)
Hadoop基础教程-第11章 Hive:SQL on Hadoop(11.7 HQL:数据查询)(草稿)
该文介绍了如何使用Hive进行左连接和内连接,包括创建表、插入数据、建立连接、执行查询和分析结果。
程裕强
2018/01/02
9490
Hadoop基础教程-第11章 Hive:SQL on Hadoop(11.8 HQL:排序)(草稿)
该文介绍了如何使用Hive进行数据倾斜处理。首先介绍了Hive数据倾斜产生的原因,然后给出了数据倾斜处理的方法,包括使用MapReduce、Spark、DistCp等。同时,还介绍了Hive数据倾斜处理的注意事项,如合理设置并行度、小文件处理等。通过这些方法,可以有效地解决Hive中的数据倾斜问题,提高数据处理的效率。
程裕强
2018/01/02
9360
Hive与HBase实现数据互导
建立与HBase的识别表 hive> create table hive_hbase_1(key int,value string)     > stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'     > WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:info")     > TBLPROPERTIES ("hbase.table.name" = "userinf
汤高
2018/01/11
1.1K0
hive sql(十)—— 编写sql语句实现每班前三名,分数一样并列, 同时求出前三名按名次排序的分差
需求 编写sql语句实现每班前三名,分数一样并列, 同时求出前三名按名次排序的分差 建表语句 create table student( sid string,--学号 cid string,--班级号 score string -- 分数 ) row format delimited fields terminated by '\t' ; 数据 #说明: 数据1具有偶然性,适合不重复的情况,实现可以用扩展部分写法1实现 数据2具有通用性,适合重复数据的情况 #数据1 inser
大数据最后一公里
2021/08/05
8160
推荐阅读
相关推荐
Sqoop导入MySQL所有表到Hive
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档