2016-06-24 18 views
0

Ich habe Ordner auf hdfs
/user/test/year=2016/month=04/dt=25/000000_0hive hinzufügen ignoriert Partition Anweisung führende Null

benötigen diese über Partition Pfad zu einem Test Tabelle hinzuzufügen.

Befehl:

ALTER TABLE test ADD IF NOT EXISTS PARTITION (year=2016,month=04,dt=25) 

Aber dieses Add-Partition Befehl, um die führende Null im Monat Partition ignoriert und erstellt einen zusätzlichen Ordner in 2016 als Monat = 4. /user/test/year=2016/month=04/ /user/test/year=2016/month=4/ und Tabelle wird auf /user/test/year=2016/month=4/ dieser Pfad angezeigt, der keine Daten enthält.

Ich habe die Protokolle überprüft, die sagt WARN org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer - Partition Spec month=04 has been changed to month=4

Bitte lassen Sie mich wissen, ob jemand diese Art von Problem konfrontiert und wie dies zu vermeiden?

Hive Version ist: 1.2.1000

Antwort

0

Sie verwenden den Integer-Typ für Partitionen. Wenn Sie führende Nullen als String-Partitionen und Anführungszeichen benötigen: ALTER TABLE test ADD IF NOT EXISTS PARTITION (year='2016',month='04',dt='25')

+0

ja, ich habe zitiert. – prad

0

Sie MSCK REPAIR TABLE test wenn Partition verwenden können Ordner bereits erstellt. Es scannt alle Verzeichnisse und erstellt neue Partitionen. Für weitere Informationen besuchen Sie bitte Hive Language Manual. Oder Sie sollten STRING für Partitionsspalten anstelle von INT verwenden.

Verwandte Themen