深圳网站设计设计,wordpress主题进的慢,上海3d建模培训学校,网站架构思维导图一、加载数据
在创建表之后#xff0c;表中没有数据#xff0c;我们不可能insert存入数据。 而是#xff0c;通过数据加载#xff0c;将HDFS中的数据关联到Hive表中。
建表
CREATE TABLE myhive.test_load(dt string comment 时间#xff08;时分秒#xff09;, user_…一、加载数据
在创建表之后表中没有数据我们不可能insert存入数据。 而是通过数据加载将HDFS中的数据关联到Hive表中。
建表
CREATE TABLE myhive.test_load(dt string comment 时间时分秒, user_id string comment 用户ID, word string comment 搜索词,url string comment 用户访问网址
) comment 搜索引擎日志表
ROW FORMAT DELIMITED FIELDS TERMINATED BY \t;SQL语法
LOAD DATA [LOCAL] INPATH filepath [OVERWRITE] INTO TABLE tablename;OVERWRITE覆盖原表数据。
方式1、加载本地数据
这种方式是先将本地数据上传到HDFS文件系统中然后关联到Hive表中。 这里的本地是指安装Hive的服务器。
SQL
LOAD DATA LOCAL INPATH /home/atguigu/search_log.txt INTO TABLE myhive.test_load;方式2、加载HDFS数据
这种方式是将HDFS文件系统重其他目录的数据Move到Hive表对应的目录中从而关联到Hive表中。
SQL 此时inpath对应的是HDFS中文件的路径。
LOAD DATA INPATH /tmp/search_log.txt INTO TABLE myhive.test_load;加载后源文件就不在了。
方式3、INSERT SELECT加载数据
这个方式和MySQL语法差不多
INSERT [OVERWRITE | INTO] TABLE tablename1 [PARTITION (partcol1val1, partcol2val2 ...)
[IF NOT EXISTS]] select_statement1 FROM from_statement;将SELECT查询语句的结果插入到其它表中被SELECT查询的表可以是内部表或外部表。 注意列字段要对齐否则数据错乱。
示例
INSERT INTO TABLE tbl1 SELECT * FROM tbl2;
INSERT OVERWRITE TABLE tbl1 SELECT * FROM tbl2;二、导出数据
基本语法
insert overwrite [local] directory path select_statement1 FROM from_statement;方式1、INSERT OVERWRITE
将查询的结果导出到本地 - 使用默认列分隔符
insert overwrite local directory /home/hadoop/export1
select * from test_load ;将查询的结果导出到本地 - 指定列分隔符
insert overwrite local directory /home/hadoop/export2
row format delimited fields terminated by \t
select * from test_load;将查询的结果导出到HDFS文件系统中(不带local关键字)
insert overwrite directory /tmp/export
row format delimited fields terminated by \t
select * from test_load;方式2、HIVE SHELL
基本语法hive -f/-e 执行语句或者脚本 file
bin/hive -e select * from myhive.test_load; /home/hadoop/export3/export4.txt
bin/hive -f export.sql /home/hadoop/export4/export4.txt注意shell中的重定向符号只能捕获程序的标准输出。