繁体   English   中英

如何使用Hive / Spark-SQL生成大型数据集?

[英]How to generate a large data set using hive / spark-sql?

例如,生成1G记录,其序号在1到1G之间。

创建分区的种子表

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

在种子表中填充1K条记录,其序号在0到999之间。
每个记录都将插入到不同的分区中,因此位于不同的HDFS目录中,更重要的是,在不同的文件中。

聚苯乙烯

需要以下设置

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

生成包含1G记录的表。
种子表中的每个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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM