2017-03-05 15 views

答えて

1

各レコードは、上に位置するため、別のパーティションに挿入されて0と999
間シーケンシャル番号を持つ1Kレコードをシードテーブルを読み込むパーティションシードテーブル

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

を作成別のHDFSディレクトリと、より重要なファイルを別のファイルに保存します。

p.s.

次のセットが1Gレコードを有するテーブルを生成

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 

が必要とされています。
シードテーブル内の1Kレコードのそれぞれが異なるファイルにあり、別のコンテナによって読み取られています。
各コンテナは1Mレコードを生成します。

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

鮮やかなアプローチ –

+0

@PraveenKumarKrishnaiyer - ありがとう:-) –

関連する問題