2017-12-27 18 views
0

Ich versuche Beeline CLI Abfrage Hive-Tabelle und speichern Ausgabeergebnis als Variable. Mit Beeline Befehl:Entfernen Sie Header in der Ausgabe in Beeline

beeline -u connection_string -n user_name -w password_file \ 
-e "select count(*) from db.table_name" 

Mit diesem Befehl, bekomme ich die aktuelle Ausgabeergebnis als:

+---------------+--+ 
| record_count | 
+---------------+--+ 
| 80785   | 
+---------------+--+ 

Während ich so müssen zur Folge: Record count:80785

Ein anderer Befehl I bin mit:

beeline -u connection_string -n user_name -w password_file \ 
-e "select * from db.table_name;” > result.csv 

Die wieder anzeigen Ergebnis in t Daten des Abular-Formats getrennt durch |.

Grundsätzlich beeline, standardmäßig, gibt die Kopfzeile (table_name.column_name) dann die Daten im Tabellenformat. Während, ich möchte dies beseitigen und Ergebnisse wie Bienenstock CLI erhalten.

Antwort

1

Sie Argument --showHeader=false --outputformat=tsv2 dies beleuchten können.

diesem Format IHR Befehl wie

beeline --showHeader=false --outputformat=tsv2 \ 
-u connection_string -n user_name -w password_file \ 
-e "select count(*) from db.table_name" 

verwenden wird prüfen, ob TSV2 verwendet

id value comment 
1 Value1 Test comment 1 
2 Value2 Test comment 2 
3 Value3 Test comment 3 

Wenn dsv verwendet (der Begrenzer |)

id|value|comment 
1|Value1|Test comment 1 
2|Value2|Test comment 2 
3|Value3|Test comment 3 

Ihre Daten wird so aussehen. Denken Sie daran, dass diese drei mit einfachen Anführungszeichen um den Wert aktiviert werden, wenn Werte ein spezielles Zeichen oder eine neue Zeile enthalten. Quoting kann deaktiviert werden, indem disable.quoting.for.sv auf true gesetzt wird.

einige weitere WAHL VERWENDEN CSV und TSV

csv, tsv Diese beiden Formate unterscheiden sich nur mit dem Trennzeichen zwischen den Werten, die für csv und Reiter für tsv ist Komma.

wenn csv verwendet wird, werden die Daten wie folgt aussehen

'id','value','comment' 
'1','Value1','Test comment 1' 
'2','Value2','Test comment 2' 
'3','Value3','Test comment 3' 

Und wenn tsv verwendet wird, dann

'id' 'value' 'comment' 
'1' 'Value1' 'Test comment 1' 
'2' 'Value2' 'Test comment 2' 
'3' 'Value3' 'Test comment 3' 

Nur hüte dich, während csv oder tsv mit, Sie Ein einzelnes Zitat wird immer von Wert umgeben sein und Sie können es nicht loswerden, was in einigen Fällen zu einem Problem führen kann.

Ich hoffe, die oben genannten Details Erklärung würde alle möglichen Fälle abdecken, die Sie abdecken wollten.

Für weitere Erklärungen besuchen Sie die Apache Beeline Wiki page. Prost!!

+1

Kannst du bitte erklären, 'tsv2' steht für, und die Vorteile dabei. –

+0

Hier ist nur ein Beispiel, ich brauche eine Lösung, die in allen Select-Abfrage verwendet werden kann. –

+0

@SandeepSingh Ich aktualisierte meine Antwort Sie können jetzt Kasse. –

1

Beeline ein Bündel von command line options.

In Ihrem Fall ist, können Sie verwenden:

beeline --outputformat=dsv --showheader=false \ 
-e "select count(*) from db_name.table_name" 
+0

Können Sie bitte erklären, 'DSV' steht für und Vorteile mit dieser –

+0

' DSV' steht für Trennzeichen separated Wert und es hat keinen spezifischen Vorteil in Ihrem Fall mit Ausnahme der Tatsache, dass es die Tabellenstruktur wie beeline unterdrücken wird druckt mit Bindestrichen und plus => '+ ----- +' – philantrovert

Verwandte Themen