Wie kann shoop verwendet werden, um die standardmäßige Hive-limitierte Ausgabe zu exportieren?

9

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%     
Julias 24.09.2013, 10:05
quelle

4 Antworten

10

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

    
Julias 03.11.2013, 22:16
quelle
3

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%     
Mark Grover 01.03.2015 23:53
quelle
0

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.

    
user2819053 28.09.2013 13:50
quelle
0

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.

    
Ankit Singhal 28.09.2013 16:27
quelle

Tags und Links