sqoop导出导入mysql,hive乱码以及只有部分数据。

1.乱码

        两个库的编码保持一直,如hive这边的编码是utf-8,mysql也要为utf-8,($代表命令)

        1.1检查mysql的编码

             

show variables like 'character_set%';   //查看编码集

如果不是图1-1这样就需要改,或者在每次导出导入的时候添加?useUnicode=true&characterEncoding=utf-8

图1-1

//每次添加  例如
sqoop export -connect jdbc:mysql://localhost:3306/ceshi?useUnicode=true&characterEncoding=utf-8 

直接修改,就可以不用每次都添加?useUnicode=true&characterEncoding=utf-8

进入

$vim /etc/my.cnf

在[mysqld]下面添加

character_set_server=utf8

保存退出,重启mysql

$systemctl restart mysqld

最后看一下是否为图1-1一样,否则没有修改成功。

2.导出导入成功但只有部分数据

        2.1字符类型设置错误,如hive这边为int有10位数,而mysql这边int设置的为int(6),数据就只会有小于等于int(6)的数据。

        2.2表没有对应成功如字段名设置错误,比如hive这边ranking原本是排名,而mysql这边粗心弄成的评分,也会导致只有一部分数据,跟2.1字符类型设置小了原理一样。

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值