Mark Vickery
Mark Vickery

Reputation: 1955

Sqoop importing zero decimals as 0E-22

When I import a table using hadoop and sqoop from my MSSQL database and that table has decimal columns any columns that are zero (eg 0.000000000000..) are saved as "0E-22".

This is quite a pain as when casting the value to a decimal in my Map or Reduce it throws an exception. So I either have to export the column as a varchar or to a check before trying to cast it. Neither are ideal.

Has anyone encountered this before and got a work around?

Thanks

Upvotes: 0

Views: 629

Answers (2)

Jarek Jarcec Cecho
Jarek Jarcec Cecho

Reputation: 1726

I would suggest trying soon to be released Sqoop 1.4.3, where we fixed SQOOP-830 that might help you as well.

Upvotes: 2

www
www

Reputation: 4391

It is a strange case, there is some workaround. You can rewrite your_table, i.e.

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

Let us know how if you succeed or not. GL!

Upvotes: 0

Related Questions