2016-08-11 3 views
2

Ich habe meine Verzeichnisstruktur wie folgt.Handle Unterordner nach Partitionen im Bienenstock

  • /data/year=/month=/day=/source1/abc.log
  • /data/year=/month=/day=/source2/def.log
  • /data/Jahr =/Monat =/Tag =/SOURce3/xyz.log

ich wollte einen Bienenstock Tisch mit Jahr, Monat, Datum als Partitionen erstellen, aber es beschwert sich über den Unterordner ‚source1‘, als ich versuchte MSCK zu tun REPARATURTABELLE.

erstellen table-Anweisung

CREATE EXTERNAL TABLE SAMPLE ( col1 STRING, col2 STRING ) PARTITIONED BY (year STRING, month STRING, date STRING) STORED as ORC Location "s3n://blah/data/" TBLPROPERTIES ("orc.compress"="SNAPPY");

MSCK REPAIR TABLE "unerwartete Komponente source1" geben. Haben Sie eine Idee, wie Sie eine externe Tabelle erstellen können, ohne Dateien zu verschieben? Danke für Ihre Hilfe.

Antwort

1

Könnten Sie versuchen, die folgende Eigenschaft Einstellung

hive.msck.path.validation = skip (or) ignore 

in hive-site.xml und führen Sie dann 'MSCK REPAIR TABLE' auf dem Tisch

(refered von Hive Manual unter 'Partitionen wiederherstellen (MSCK REPARATUR TABELLE) 'Abschnitt)

+1

Vielen Dank für Ihre Antwort. Überspringen funktioniert nicht, aber "ignorieren" funktioniert. Ich musste mir die Hive-Quelle ansehen, um den Fix zu finden, siehe DDLTask.java, method = msck. Bitte editiere deine Antwort, damit ich sie als Antwort markieren kann – kamoor

+0

toll !!! bearbeite meine Antwort :) – Aditya

Verwandte Themen