说下我当时遇到的情况,我在使用sqoop从mysql导入数据到hive,之前都是正常的,突然某一天发现一个字段导入到hive时为空,但是mysql是有值的,仔细观察发现这个字段类型有点特殊,特殊在哪里呢,他是tinyint(1),这种类型是比较少见的
接下来直接说解决办法:
在sqoop连接mysql的url中加上tinyInt1isBit=false,
完整的url示例:jdbc:mysql://localhost/test?tinyInt1isBit=false
解释一下加这个得含义,默认sqoop导mysql的tinyint类型时会将其转成boolean类型,而当我们的hive表这个字段为整形时,导入就会为空,加上tinyInt1isBit=false是告诉sqoop,导入的时候这种类型不要转换成boolean类型
免责声明:文章源自网络,版权归原作者所有,如有侵犯联系删除。