Ich habe eine Bienenstockabfrage:
%Vor%Dann versuche ich die Daten mit sqoop zu exportieren
%Vor%Aber das scheint die Felder nicht nach Trennzeichen zu analysieren Was vermisse ich? Ich denke, der - Eingabefelder - terminiert durch 0x01 Teil funktioniert nicht wie erwartet?
Ich möchte keine zusätzlichen Tabellen in der Struktur erstellen, die die Abfrageergebnisse enthält.
Stack-Trace:
%Vor%Die vi-Ansicht der Ausgabe
%Vor%Ich habe die richtige Lösung für dieses Sonderzeichen in bash gefunden
%Vor%Das Problem lag in der korrekten Erkennung von Trennzeichen (nichts mit Arten und Schemata zu tun) und das wurde von hive_char erreicht.
Eine andere Möglichkeit, dieses spezielle Zeichen in Linux in die Kommandozeile zu schreiben, ist Cntr + V + A
Verwenden Sie
%Vor%als Flags im shoop Export-Befehl scheint den Trick für mich zu tun.
In diesem Beispiel wäre der vollständige Befehl:
%Vor%Ich denke, dass der DataType nicht mit Ihrem RDBMS-Schema übereinstimmt.
Versuchen Sie, den Spaltennamen des "9-2" -Werts zu finden, und überprüfen Sie den Datentyp im RDBMS-Schema.
Wenn es int oder numerisch ist, dann wird Sqoop den Wert analysieren und einfügen. Und wie es scheint "9-2" ist kein numerischer Wert.
Lass es mich wissen, wenn das nicht funktioniert.
Es scheint, dass sqoop "0" als Trennzeichen verwendet. Sie erhalten einen Fehler, weil: - Die erste Spalte in Ihrer MySQL-Tabelle könnte varchar sein und die zweite Spalte ist eine Zahl. Wie folgt: -
16- 0 9-2 0 13 23 ^ A1182 ^ A-1 ^ APub_X ^ A21782 ^ AIT ^ A1 ^ A0 ^ A0 ^ A0 ^ A0 ^ A0 .0 ^ A0.0 ^ A0.0
Ihre erste von sqoop analysierte Spalte ist: - 16 - und die zweite Spalte ist: - 9-2
Es ist also besser, ein Trennzeichen in Anführungszeichen anzugeben ('0x01') oder
(Es ist immer einfach und hat eine bessere Kontrolle) Verwenden Sie Hive create table Befehl als: - Erstellen Sie Tabellen Tabellenname Zeilenformat getrennte Felder mit '\ t' als Auswahl beendet ... und geben Sie '\ t' als Trennzeichen in Ihrem sqoop-Befehl an.