Export-Hive-Tabelle, csv in hdfs
Ich weiß, es ist ein bekanntes Problem mit Trennzeichen beim speichern einer Tabelle in das csv - (oder andere text-Datei) in den Bienenstock. So Frage ich mich, wenn Euch kann mir helfen, dass rund.
Ich habe eine vorhandene Tabelle (Tabelle A), und ich möchte speichern Sie Sie im csv-format zu hdfs. Aus dem Lesen der anderen Antworten, die ich glaube, ich würde zuerst erstellen Sie eine externe Tabelle (aber ich bin mir nicht sicher, wie die ganze Sache Aussehen würde).
Kann jemand helfen?
- Persönlich würde ich nur verwenden
insert overwrite directory
und haben eine\001
Datei mit Trennzeichen. Aber wenn Sie eine csv -, ich glaube, du bist am besten aus Rohrleitungen die Abfrage zu einer lokalen .csv und dannhadoop fs -put
-ing in hdfs, das ist hier beschrieben stackoverflow.com/questions/18129581/... - Ich möchte vermeiden, speichern eine große Datei in das lokale Verzeichnis, wenn möglich. Mein Problem ist, dass ich dann benötigen, um die Datei zu laden in R, und dies zu tun, die Sie normalerweise geben Sie ein Trennzeichen, nicht sicher, wie das funktionieren würde (oder, wenn es funktionieren würde) mit einem unsichtbaren Charakter.
- Ich lade Daten aus hdfs zu entfachen, und geben Sie das als Begrenzungszeichen
"\001"
. Ich habe noch nie hatte (ein Grund) für den import einer Datei aus dem HDFS zu R, aber ich würde davon ausgehen, es kann ein beliebiges Trennzeichen, solange es richtig angegeben ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, diese in die hive-shell:
Ändern Sie Ihre
/path/to/csv
Sie zu dem Speicherort, wo Sie möchten, speichern csv-Datei.hivetablename
zu Ihrer hive-Tabelle gespeichert werden, die im csv-format.LOCAL
Angabe des HDFS-Pfad sollte den trick tun.Diese drei-Schritt-Prozess, arbeitete gut für mich:
HIVE, erstellen Sie einen neuen temporären Tabelle gespeichert als Textdatei
auch HIVE, schreiben die Quelle der Daten in die temporäre Tabelle
Aus der Kommandozeile kopieren Sie die Hive-Tabelle, von seinem Standort in HDFS Sie die lokale Datei - Inspektion zeigen, sollten Sie die Datei als csv-Datei (durch umbenennen entsprechend, wenn gewünscht)
Wenn Sie den Befehl ausführen
SHOW CREATE TABLE temp_table
HIVE, es wird Ihnen sagen, die genaue Position der Tabelle in HDFS, z.B.Für externe Tabelle in hive, können Sie die unten aufgeführten Schritte:
Erstellen externe Tabelle in hive
CREATE EXTERNAL TABLE external_table( Nummer INT, name STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION '/user/hive/extern/mytable/';
2. Laden Sie die Daten-Datei von der lokalen HDFS-Lage
Den beiden obigen Schritte Ihr problem lösen.