2017-03-05 3 views

Antwort

1

erstellen partitionierten Sätabelle

create table seed (i int) 
partitioned by (p int) 

Bestücken des Saatguts Tabelle mit 1K Datensätze mit sequentieller Zahlen zwischen 0 und 999.
Jeder Datensatz in einer anderen Partition eingesetzt wird, befindet sich daher auf ein anderes HDFS-Verzeichnis und wichtiger - in einer anderen Datei.

Ps.s.

Der folgende Satz wird

benötigt
set hive.exec.dynamic.partition.mode=nonstrict; 
set hive.exec.max.dynamic.partitions.pernode=1000; 
set hive.hadoop.supports.splittable.combineinputformat=false; 
set hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat; 

insert into table seed partition (p) 
select i,i 
from (select 1) x lateral view posexplode (split (space (999),' ')) e as i,x 

eine Tabelle generieren mit 1G Aufzeichnungen.
Jeder der 1K Datensätze in der Seed-Tabelle befindet sich in einer anderen Datei und wird von einem anderen Container gelesen.
Jeder Container generiert 1M Datensätze.

create table t1g 
as 
select s.i*1000000 + e.i + 1 as n 
from seed s lateral view posexplode (split (space (1000000-1),' ')) e as i,x 
+0

Brilliant Ansatz –

+0

@PraveenKumarKrishnaiyer - Danke :-) –

Verwandte Themen