2016-10-04 8 views
1

Wenn ich die create external table Abfrage ausführen, muss ich ein Verzeichnis für das Attribut 'Location' angeben. Wenn das Verzeichnis, auf das ich zeige, mehr als eine Datei enthält, liest es beide Dateien. Zum Beispiel, wenn ich LOCATION 'dir1/' setzen und Verzeichnis1 Datei1 und Datei2 enthält, werden beide Dateien gelesen.Erstellen einer externen Tabelle aus einer Datei, kein Verzeichnis

Um dies zu vermeiden, möchte ich auf eine einzelne Datei verweisen. Als ich versuchte LOCATION 'dir1/file1', gab es mir einen Fehler, dass der Dateipfad kein Verzeichnis ist oder nicht erstellen kann. Gibt es eine Möglichkeit, auf die einzelne Datei zu zeigen?

+0

gibt es eine Erweiterung/Dateityp für 'file1 '? Wenn ja, sollten Sie es deklarieren. –

+3

Mögliches Duplikat von [beim Erstellen einer externen Tabelle in einem Stock kann ich den Ort auf bestimmte Dateien in einem Verzeichnis verweisen?] (Http://stackoverflow.com/questions/11269203/when-creating-an-external-table-in- Bienenstock-kann-ich-Punkt-der-Ort-zu-spezifischen-fil) –

Antwort

0

Wenn Sie möchten Daten von HDFS laden, so versuchen, diese

LOAD DATA INPATH '/user/data/file1' INTO TABLE table1; 

Und wenn Sie möchten, so dass die Daten aus dem lokalen Speicher laden,

LOAD DATA LOCAL INPATH '/data/file1' INTO TABLE table1; 
Verwandte Themen