2012-02-08 11 views
7

Zaimportowałem w pobliżu około 10 tabel w ulu z serwera MS SQL Server. Ale kiedy próbuję sprawdzić, czy rekordy w Hive w jednej z tabel znalazłem więcej rekordów, gdy uruchomię zapytanie (wybierz count (*) from tblName;).Wyświetlanie nieprawidłowej liczby po zaimportowaniu tabeli w ulu

Następnie upuściłem tę tabelę i ponownie zaimportowałem ją do Hive. Zauważyłem w dziennikach konsoli, że pobrano 203 rekordów. I wtedy spróbowałem ponownie (wybierz liczbę (*) z tblName;) i dostałem liczbę jako 298.

Nie rozumiem tego, dlaczego tak się dzieje. Czy coś jest nie tak w zapytaniu, czy dzieje się to z powodu niepoprawnego polecenia sqoop-import.

Wszystkie inne zapisy w tabeli są w porządku.

Pls pomóż mi z tego.

Odpowiedz

7

Dostałem rozwiązanie tego problemu z listy mailingowej i chciałbym je udostępnić. Ich odpowiedź była następująca:

W przeszłości mieliśmy podobny problem - tabela w ulu wydaje się mieć więcej wierszy niż zgłoszono, że zostały zaimportowane przez sqoop i które faktycznie były dostępne w bazie danych.

Opisany problem po naszej stronie zawierał niepoprawne znaki w wyeksportowanych danych, które przerwały linie w wyeksportowanym pliku testowym CSV. Na przykład niektóre z naszych wierszy zawierały dane z nowymi znakami. Ponieważ kilka wyeksportowanych wierszy zostało podzielonych na więcej wierszy, liczba wierszy ula okazała się być większa niż liczba importu. Być może masz podobny problem. Problem został rozwiązany za pomocą parametru --hive-drop-import-delims (lub można ewentualnie użyć --hive-delims-replacement). Dla semantyki i użytkowania, należy rozważyć podjęcie spojrzeć na instrukcji:

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

Dzięki

Powiązane problemy