将CSV文件导入到Hive
1.在Hive建立表
命令:
(列名数量与csv保持一致)
create table 表名(列名 int,列名 int,列名 int,列名 int,列名 date,列名 int,列名 int) row format delimited fields terminated by ',' TBLPROPERTIES ('skip.header.line.count'='1');
2.导入CSV文件
命令:
(以下为csv文件第一行为列名的情况,要导入第一行去除最后一行代码即可)
LOAD DATA LOCAL INFILE 'csv文件的本地路径'
INTO TABLE 表名
FIELDS TERMINATED BY ','
IGNORE 1 LINES #不导入csv文件的第一行
将Hive的查询结果保存到Mysql
1.根据Hive的查询结果建立一个Hive表
(以下例子为查询结果共两列且都为int类型的情况)
create table 写入的表名 (列名1 int,列名2 int) #根据查询结果而建表
insert overwrite table 写入的表名
select 列名1,列名2 from 查询的表名 ; #此行可为任何查询语句
2.传入MySQL
以上命令都在Hive shell界面输入,以下为系统shell下输入:
(1) 在mysql里面建一个和要传的hive表完全一样的类型表
create table 写入的表名 (列名1 int,列名2 int)
(2) 传入数据
sqoop export --connect "jdbc:mysql://localhost:3306/表所在的mysql数据库?characterEncoding=UTF-8" --username 用户名(默认为root) --password 密码 --table mysql表名 --fields-terminated-by '\001' --export-dir 'hive表在hdfs上的路径';
hive表在hdfs上的路径:例如 ‘/hive-2.3.3/warehouse/user_count’