0

MSSQLデータベースからhadoopとsqoopを使用してテーブルをインポートし、そのテーブルに10進列がある場合、ゼロの列(0.000000000000 ..など)はすべて「0E-22」として保存されます。

MapまたはReduceで値を小数にキャストすると例外がスローされるため、これは非常に面倒です。したがって、列をキャストする前に、列をvarcharまたはチェックにエクスポートする必要があります。どちらも理想的ではありません。

誰かが以前にこれに遭遇し、回避策を得たことがありますか?

ありがとう

4

2 に答える 2

2

すぐにリリースされるSqoop1.4.3を試してみることをお勧めします。ここでは、 SQOOP-830も修正さ れています。

于 2013-03-07T03:04:27.607 に答える
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!

于 2013-03-06T14:21:21.763 に答える