2013-07-14 20 views
6

Załadowałem pliki oddzielone tabulatorami do S3, które z tego typu folderów pod wiadrem: wiadro -> se -> y = 2013 -> m = 07 -> d = 14 -> h = 00utwórz tabelę ula z pliku oddzielonego kartą w s3 w trybie interaktywnym

każdy podfolder ma 1 plik reprezentujący godzinę ruchu.

Następnie utworzyłem przepływ pracy EMR, aby działał w trybie interaktywnym z gałęzią.

Kiedy zalogować się do pana i dostać się do ula uruchomić polecenie:

CREATE EXTERNAL TABLE se (
id bigint, 
oc_date timestamp) 
partitioned by (y string, m string, d string, h string) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' 
LOCATION 's3://bi_data'; 

otrzymuję komunikat o błędzie:

failed: Błąd w metadanych: java.lang.IllegalArgumentException : Nazwa nazwy zasobnika musi być określona podczas wymieniania obiektów w wiadrze

NIEBEZPIECZEŃSTWO: Błąd wykonania, kod powrotu 1 z org.apache.hadoop.hive.q l.exec.DDLTask

Czy ktoś może pomóc?

UPDATE Nawet jeśli próbuję użyć tylko pól ciąg, otrzymuję ten sam błąd. Utwórz tabelę z ciągów: wersja

CREATE EXTERNAL TABLE se (
id string, 
oc_date string) 
partitioned by (y string, m string, d string, h string) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' 
LOCATION 's3://bi_data'; 

Hive 0.8.1.8

Odpowiedz

13

Więc rozwiązaniem jest to, że miałem dwa błędy:

  1. Pisząc tylko nazwę wiadro powinieneś mają końcowe ukośniki na ścieżce S3. odniesienie here

  2. Podkreślenie jest również problemem, nazwa zasobnika powinna być zgodna z DNS.

Mam nadzieję, że pomogłem komuś z tym.

+0

Dziękuję człowieku! To dawało mi ból głowy! – Rorchackh

+0

Tak, dziękuję. Podkreślenie kosztowało mnie kilka godzin. – msharp