2017-05-12 8 views
0

Ich habe mehrere Tabellen in Hive mit verschiedenen Schemas.Auswählen von Daten aus mehreren Tabellen in Hive

Ich möchte Top 20 Zeilen aus jeder Tabelle auswählen und in csv-Datei ausgeben.

Gibt es eine Möglichkeit, es zu tun. Wie alles, was ich gefunden habe, ist es, Daten von einer einzigen Tabelle zu csv.

Dump zu geben Jede Hilfe würde geschätzt werden !!

+0

Eine einzelne CSV-Datei oder mehrere Dateien? –

+0

Können wir Ihren Tabellen vertrauen, dass sie nur primitive Typen enthalten (keine Arrays, Strukturen usw.)? –

+0

@DuduMarkovitzca einzelne CSV-Datei. –

Antwort

1

Wenn Sie ein anderes Schema haben.

1.Below Beispielcode wird mehrere CSV-Dateien erzeugen.

#!/bin/bash 

    tbs=$(hive -S -e "show tables") 
    for tb in $tbs 
    do 
    hive -e "set hive.cli.print.header=true; SELECT * FROM $tb LIMIT 20;" | sed 's/[\t]/,/g' > $tb.csv 
    done 

2.Below Beispielcode wird einzelne CSV-Datei produzieren.

#!/bin/bash 

    tbs=$(hive -S -e "show tables") 
    for tb in $tbs 
    do 
    echo "Table Name : "$tb >> sampleData.csv 
    hive -e "set hive.cli.print.header=true; SELECT * FROM $tb LIMIT 20;" | sed 's/[\t]/,/g' >> sampleData.csv 
    done 
+0

Besser werden :-) Wie wäre es mit beeline? –

+0

Wie würde ich einen ähnlichen Code schreiben, um einen einzelnen csv zu erzeugen, wenn ich ein Bienenstock-Skript haben wollte. –

+1

Das Schleifen ist im Hive-Skript nicht möglich. Gibt es eine spezielle Anforderung zum Schreiben in Hive-Skript? –

Verwandte Themen