2012-02-08 6 views
7

MS SQL ServerからHiveに約10個の表をインポートしました。 しかし、テーブルの1つでHiveのレコードをチェックしようとすると、クエリ(select tblNameからcount(*)を実行するとレコードが増えました)が見つかりました。Hiveで表をインポートした後に間違った数が表示される

次に、そのテーブルを削除し、再びハイブにインポートしました。私はコンソールログで(203レコードを取得した)ことを確認しました。 そして、もう一度(tblNameからcount(*)を選んで)試してみたところ、カウントは298でした。

私はこれがなぜ起こるのか理解していません。クエリに何か間違っているのか、それともsqoop-importの不正なコマンドが原因です。

他のすべてのテーブルレコードは正常です。

Plsから私を助けてください。

答えて

7

私はこの問題の解決策をメーリングリストから得ました。私はそれを共有したいと思います。

ハイブのテーブルには、sqoopによってインポートされると報告された行より多くの行が存在し、実際にはデータベースで利用可能であったようです。

説明された問題は、エクスポートされたデータに間違った文字があり、書き出されたテストCSVファイルの行が壊れていました。たとえば、いくつかの行には改行文字を含むデータが含まれていました。エクスポートされた複数の行がより多くの行に分割されているため、ハイブ行の数がインポート数を超えているように見えました。同様の問題が発生している可能性があります。パラメータ--hive-drop-import-delimsを使用して問題を解決しました(または--hive-delims-replacementを使用することもできます)。意味と使用方法については、マニュアルを見てとることを検討してください:

http://incubator.apache.org/sqoop/docs/1.4.0-incubating/SqoopUserGuide.html#id1765770

おかげ

関連する問題