Wenn hive Version mindestens 0.11.0 Sie ausführen können, dass die Ausgabe in dem lokalen Dateisystem erhalten können:
INSERT OVERWRITE LOCAL DIRECTORY '/tmp/directoryWhereToStoreData'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY "\n"
SELECT * FROM yourTable;
von Hive/beeline, um die Tabelle in einem Verzeichnis auf dem lokalen Dateisystem zu speichern.
Alternativ mit Beeline, speichern Sie Ihre SELECT-Abfrage in yourSQLFile.sql und läuft:
beeline -u 'jdbc:hive2://[databaseaddress]' --outputformat=csv2 -f yourSQlFile.sql > theFileWhereToStoreTheData.csv
Auch diese speichert das Ergebnis in eine Datei in dem lokalen Dateisystem.
Von Bienenstock, um die Daten zu speichern, irgendwo in HDFS:
CREATE EXTERNAL TABLE output
LIKE yourTable
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
LOCATION 'hfds://WhereDoYou/Like';
INSERT OVERWRITE TABLE output SELECT * from yourTable;
dann können Sie die Daten in einer lokalen Datei sammeln mit:
hdfs dfs -getmerge /WhereDoYou/Like
Diese weitere Option zu erhalten die Daten werden nur mit beeline verwendet:
env HADOOP_CLIENT_OPTS="-Ddisable.quoting.for.sv=false" beeline -u "jdbc:hive2://your.hive.server.address:10000/" --incremental=true --outputformat=csv2 -e "select * from youdatabase.yourtable"
Arbeiten an:
Connected to: Apache Hive (version 1.1.0-cdh5.10.1)
Driver: Hive JDBC (version 1.1.0-cdh5.10.1)
Transaction isolation: TRANSACTION_REPEATABLE_READ
Beeline version 1.1.0-cdh5.10.1 by Apache Hive
Eine seltsame Sache, die ich bemerkte, '--outputformat' doesn‘ entfernen t funktionieren, wenn Sie es nach der '-e' Abfrage oder' -f' Datei mit Abfrage-Schalter platzieren. Seltsamerweise dachte ich, dies wären benannte Argumente, aber Beeline ignoriert alle Argumente nach der Abfrage. Ich habe immer das Standardtabellenformat erhalten. – Davos
Fügen Sie die Versionen hinzu, da das Hadoop-Ökosystem noch in Arbeit ist. – ozw1z5rd
Ich benutze dies auf AWS, wenn ich 'beeline --version 'laufen lasse, zeigt es mir Hive 2.3.2-amzn-0 – Davos