标签: hadoop hive sqoop
当我从MSSQL数据库使用hadoop和sqoop导入表时,该表有十进制列,任何零的列(例如0.000000000000 ..)都保存为“0E-22”。
这非常痛苦,因为在我的Map或Reduce中将值转换为小数时会抛出异常。因此,我必须在尝试强制转换之前将列导出为varchar或检查。两者都不理想。
有没有人遇到过这个问题并得到了解决方法?
由于
答案 0 :(得分:2)
我建议尽快发布Sqoop 1.4.3,我们修复SQOOP-830 这对你也有帮助。
答案 1 :(得分:0)
这是一个奇怪的案例,有一些解决方法。你可以重写your_table,即
INSERT OVERWRITE TABLE your_table SELECT columns_no_need_for_change , CASE WHEN possible_bad_column = '0E-22' THEN '0' ELSE possible_bad_column END FROM your_table
如果您成功与否,请告诉我们。 GL!