您的位置:首页 > 数据库 > MySQL

HIVE数据表的导入导出

2017-08-09 16:38 246 查看

一、MYSQL与HIVE

mysql导入hive

sqoop import --connect jdbc:mysql://IP:3306/dbname --username xxx --password xxx --table table1 --hive-import --hive-overwrite --create-hive-table --hive-table dbname.table1


hive导入mysql

Sqoop export --connect  jdbc:mysql://127.0.0.1:3306/dbname  --username mysql(mysql用户名) --password 123456(密码) --table  student(mysql上的表) --hive-import --hive-overwrite --create-hive-table --hive-table student(hive上的表)


二、文件与HIVE

hive导出到文件

1.1. hive>导出到本地

insert overwrite local directory ‘/home/username/a’

select * from dbname.table;

注1:当前用户必须对'/home/username/a'有读写权限。
注2:此方式文件分隔符默认为^A


1.2 命令行hive导出

hive -e “select * from dhtest.temp_uv” >> res1.csv:文件默认以\t作为分隔符,此方法适用于字段内容中不包含特殊字符\t

hive -e "select * from pms.pms_algorithm_desc" | sed 's/\t/,/g' > ./aaa.txt


文件导入hive

a.第一步

CREATE TABLE csv_table(a string, b string) ROW FORMAT SERDE 'org.apache.Hadoop.hive.serde2.OpenCSVSerde' WITH SERDEPROPERTIES ( "separatorChar" = "\t",   "quoteChar"     = "'", "escapeChar"    = "\\")  STORED AS TEXTFILE;


aratorChar:分隔符

quoteChar:引号符

escapeChar:转意符

或者

CREATE TABLE csv_table(a string, b string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\001';
CREATE TABLE csv_table(a string, b string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '^A';


b. 第二步

load data local inpath '/data/user1.csv' into table csv_table;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql hive