2015-10-16 7 views
6

Hive-Version: 1.2.1Wie reduziere ich das Generieren von SQL-Dateien "Alter Table/Partition Concatenate" in Hive?

Konfiguration:

set hive.execution.engine=tez; 
set hive.merge.mapredfiles=true; 
set hive.merge.smallfiles.avgsize=256000000; 
set hive.merge.tezfiles=true; 

HQL:

ALTER TABLE `table_name` PARTITION (partion_name1 = 'val1', partion_name2='val2', partion_name3='val3', partion_name4='val4') CONCATENATE; 

ich die HQL verwenden, um Dateien von bestimmten Tabelle/Partition zu verschmelzen. Nach der Ausführung befinden sich jedoch immer noch viele Dateien im Ausgabeverzeichnis. und ihre Größe sind weit weniger als 256000000. So, wie Sie die Anzahl der Ausgabedateien verringern.

BTW, verwenden MapReduce anstelle von Tez auch nicht funktioniert.

+0

können Sie die Tabelle DDL? – SrinivasR

Antwort

-1

Sie können Ihre Reduzierernummer auf 1 setzen und dann nur eine Ausgabedatei erstellen.

Sie können es mit dem folgenden tun;

set mapred.reduce.tasks=1 
+0

Die Ausführung der Engine ist tez ... – mgaido

+0

Bitte überprüfen Sie den Kommentar: BTW, MapReduce anstelle von Tez verwenden, hat auch nicht funktioniert. Also kann er MapReduce auch benutzen, wenn er möchte. Zusätzlich können Sie die obige Konfiguration auch für Tez verwenden. – Ducaz035

+0

trotzdem kann ich dir versichern, dass dies nicht löst – mgaido

-1

Vielleicht kann u versuchen insert overwrite table ... partition (...) select * from ...

Dieses die Zusammenführung Einstellung für tezfiles verwenden können.

Verwandte Themen