[sqoop]将hive查询后的数据导入到MySQL

一、知识点

export:将Hive的表导入到mysql叫导出

搜了很多,发现sqoop在hive导出到mysql时

1)不支持where参数对数据进行过滤。

2)不支持指定hive表的方式导出,只能指定Hive目录进行导出。

二、操作

1、在MySQL中建表
create table my_hive.formal_extract_ren_kou(
years varchar(255),
areas varchar(255),
zheng_shi_indicator varchar(255),
zheng_shi_value varchar(255),
zheng_shi_unit varchar(255)
);

2、在hive中建表

drop table test.test_formal_extract_ren_kou;
create table test.test_formal_extract_ren_kou as
select 
years,
areas,
zheng_shi_indicator,
zheng_shi_value,
zheng_shi_unit 
from ods.ods_formal
where locate("人口",zheng_shi_indicator)>0;
3、将hive表导入到Mysql对应的表
sqoop export \
--connect jdbc:mysql://hadoop4:3306/my_hive \
--username root \
--password 你的密码 \
--table formal_extract_ren_kou \
--columns "years,areas,zheng_shi_indicator,zheng_shi_value,zheng_shi_unit" \
--export-dir /user/hive/warehouse/test.db/test_formal_extract_ren_kou \
--input-fields-terminated-by "\001"
;

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
sqoop是一种用于在Hadoop和关系型数据库之间传输数据的工具。要将Hive数据导入MySQL,可以使用以下步骤: 1. 确保已经安装了sqoopMySQL驱动程序。 2. 在Hive中创建一个表,并将其导出为一个文件。例如,可以使用以下命令将Hive表导出为一个CSV文件: ``` hive -e 'SELECT * FROM my_table' | sed 's/[\t]/,/g' > my_table.csv ``` 3. 使用sqoop将CSV文件导入MySQL。例如,可以使用以下命令将CSV文件导入MySQL中的一个表: ``` sqoop import --connect jdbc:mysql://localhost/my_database --username my_username --password my_password --table my_table --fields-terminated-by ',' --lines-terminated-by '\n' --input-null-string '\\N' --input-null-non-string '\\N' --delete-target-dir --target-dir /tmp/my_table --bindir /tmp/my_table/bin --outdir /tmp/my_table/out --input-fields-terminated-by ',' ``` 其中,--connect指定MySQL连接字符串,--username和--password指定MySQL用户名和密码,--table指定要导入MySQL表名,--fields-terminated-by指定CSV文件中字段之间的分隔符,--lines-terminated-by指定CSV文件中行之间的分隔符,--input-null-string和--input-null-non-string指定CSV文件中的空值表示方式,--delete-target-dir指定在导入之前删除目标目录,--target-dir指定HDFS中的目标目录,--bindir、--outdir和--input-fields-terminated-by指定生成的Java类的位置和属性分隔符。 4. 确认数据已经成功导入MySQL中的表中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值