2017-03-02 54 views
1

是否可以使用用户指定的记录数创建配置单元表?如何用用户指定的记录数创建Hive表?

例如,我想创建一个x行数的表(其中x由用户定义)。该表有两列1.唯一行ID [可以自动递增] 2.随机生成的字符串。

这可能使用Hive吗?

+0

附:还有你的另一篇文章 - http://stackoverflow.com/questions/42562705/how-to-generate-large-amount-of-data-using-mapreduce-process。我很好奇你为什么要删除它 –

回答

0

在创建表时指定的行的数目的限制可能是不可能的,但是,其可能使用LIMIT子句

-- <filename:dbloader.sql> 

create table {hiveconf:TABLENAME} (id int, string1 string) 

insert into newtable 
select id,string1 from oldtable limit {hiveconf:ROWLIMIT}; 

限制可以被插入到表中的行的数量和同时提交蜂房脚本 -

hive --hiveconf TABLENAME='XYZ' --hiveconf ROWLIMIT=1000 -f dbloader.sql 

至于创建唯一的增量ID,你将不得不为它编写UDF。

+0

你可以使用row_number()作为增量id。 –

+1

这不回答这个问题 –

0
set N=7; 

select pe.i+1                   as n 
     ,java_method ('org.apache.commons.lang.RandomStringUtils','randomAlphabetic',10) as str 

from (select 1) x 
     lateral view posexplode(split(space(${hiveconf:N}-1),' ')) pe as i,x 
; 

+---+------------+ 
| n | str  | 
+---+------------+ 
| 1 | udttBCmtxT | 
| 2 | kkrMQmirSG | 
| 3 | iYDABgXOvW | 
| 4 | DKHKgtXKPS | 
| 5 | ylebKcdcGj | 
| 6 | DaujBCkCtz | 
| 7 | VMaWfbtzFY | 
+---+------------+ 

posexplode
java_method
RandomStringUtils

相关问题