博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sqoop mysql导入hive 数值类型变成null的问题分析
阅读量:5327 次
发布时间:2019-06-14

本文共 541 字,大约阅读时间需要 1 分钟。

问题描述:mysql通过sqoop导入到hive表中,发现有个别数据类型为int或tinyint的列导入后数据为null。设置各种行分隔符,列分隔符都没有效果。

 

问题分析:hive中单独将有问题的那几列的数据类型设置为string类型,重新导入后发现,里面的值变成true或者false。

 

由此猜想,sqoop在导入的时候,将那几列的数据转换成了bool类型,问题产生的原因和hive建表语句无关,只能发生在sqoop端或者mysql端。

经过查看,发现mysql中有问题的那几列数据类型都是tinyint(1),这说明什么,说明那几列的数值长度为1。猜想sqoop将数值长度为1的数据类型,认为是bool类型,导入的时候会自动转换成bool类型。

 

验证:在sqoop的导入sql语句中,单独对那几个问题列进行数据类型转换(CONVERT(match_type,SIGNED)),然后再导入hive,发现数据可以正常显示,一点问题也没有,

 

解决方法:sqoop导入的时候,将数据类型为1个字符长度的数值类型的列,进行格式转换(CONVERT(match_type,SIGNED))

 

转载于:https://www.cnblogs.com/guozhen/p/9836459.html

你可能感兴趣的文章
JAVA共通関数--シングルクォーテーションをSQL用に追加する
查看>>
暑假第十一测
查看>>
POJ - 2891 中国剩余定理
查看>>
Tyvj - 1305 单调队列优化dp
查看>>
18华工校赛 小马哥的超级盐水 折半枚举
查看>>
挂钩SSDT详解附源代码
查看>>
iDoubs的编译问题以及解决方案
查看>>
[USACO07DEC]道路建设Building Roads
查看>>
Jmeter登录接口返回 status415
查看>>
iOS动画和第三方插件学习网址
查看>>
C/C++ 格式化读取和读取一行
查看>>
PHP正则表达式完全手册
查看>>
POJ 3268 Silver Cow Party
查看>>
内存和cpu
查看>>
js中Array自定义contains, indexOf, delete方法.
查看>>
重命名流程
查看>>
array 删除指定的元素的方法
查看>>
汇编语言相关图书推荐
查看>>
CBMVC For Titanium Alloy 发布!
查看>>
docker镜像的常用操作
查看>>