当我使用hadoop和sqoop从我的mssql数据库导入一个表,并且该表有十进制列时,任何为零的列(例如0.000000000000..)都保存为“0e-22”。这是相当痛苦的,因为当在我的Map中将值强制转换为十进制或reduce时,它会引发异常。因此,我要么将该列导出为varchar,要么将其转换为一个检查。两者都不理想。以前有没有人遇到过这种情况并找到了工作?谢谢
yrefmtwq1#
我建议尽快发布sqoop1.4.3,在那里我们修复了sqoop-830,这可能也会对您有所帮助。
hi3rlvi22#
这是一个奇怪的情况,有一些解决办法。你可以重写你的表,即。
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
告诉我们你成功与否。德国劳埃德!
2条答案
按热度按时间yrefmtwq1#
我建议尽快发布sqoop1.4.3,在那里我们修复了sqoop-830,这可能也会对您有所帮助。
hi3rlvi22#
这是一个奇怪的情况,有一些解决办法。你可以重写你的表,即。
告诉我们你成功与否。德国劳埃德!