Sono in esecuzione alveare 071, l'elaborazione di dati esistenti che è ha la seguente struttura delle directory:
-tableName
- d = (ad esempio 2011-08-01)
- d = 2011-08-02 - d = 2011-08-03
... ecc
sotto ogni data ho i file di data.
ora per caricare i dati che sto utilizzandoHive: partizione dinamica aggiungendo alla tabella esterna
CREATE EXTERNAL TABLE table_name (i int)
PARTITIONED BY (date String)
LOCATION '${hiveconf:basepath}/TableName';**
vorrei il mio script alveare per essere in grado di caricare le partizioni rilevanti secondo alcuni la data di ingresso, e il numero di giorni. quindi se mi passa data = '2011-08-03' e giorni = '7'
Lo script deve caricare i seguenti partizioni - d = 2011-08-03
- d = 2011-08 -04
- d = 2011-08-05
- d = 2011-08-06
- d = 2011-08-07
- d = 2011-08-08
- d = 2011-08 -09
Non ho trovato alcun modo discusso per farlo ex CEPT explicitlly esecuzione:
ALTER TABLE table_name ADD PARTITION (d='2011-08-03');
ALTER TABLE table_name ADD PARTITION (d='2011-08-04');
ALTER TABLE table_name ADD PARTITION (d='2011-08-05');
ALTER TABLE table_name ADD PARTITION (d='2011-08-06');
ALTER TABLE table_name ADD PARTITION (d='2011-08-07');
ALTER TABLE table_name ADD PARTITION (d='2011-08-08');
ALTER TABLE table_name ADD PARTITION (d='2011-08-09');
e poi correre la mia domanda
select count(1) from table_name;
tuttavia questo non è offcourse automatizzata in base alla data e giorni di ingresso
C'è un modo posso definire all'esterno tabella per caricare le partizioni in base all'intervallo di date o all'aritmetica della data?
Ciao! Sei riuscito a risolvere questo problema? Se sì, puoi condividere la tua soluzione? Grazie!! – eli
Mentre lavoro con Amazon EMR. Appare che Amazon abbia implementato il seguente comando: "alter table X recover partitions" che aggiunge tutte le sottodirectory come partizioni. questo in parte risolve il problema usando "dove d> start e d
Tomer
Grazie. Speravo di evitare di dover recuperare partizioni, poiché ci vuole un po 'di tempo. – eli