Hive:从大表创建较小的表

sta*_*010 4 hadoop hive

我目前有一个拥有15亿行的Hive表.我想创建一个较小的表(使用相同的表模式),原始表中有大约100万行.理想情况下,新行将从原始表中随机采样,但是获取原始表的前1M或下1M也是可以的.我该怎么做?

Luk*_*eer 7

正如之前提到的爬虫,你可能最好使用Hive的内置采样方法.

INSERT OVERWRITE TABLE my_table_sample 
SELECT * FROM my_table 
TABLESAMPLE (1m ROWS) t;
Run Code Online (Sandbox Code Playgroud)

这种语法是在Hive 0.11引入的.如果您运行的是旧版本的Hive,那么您将被限制使用PERCENT如此语法.

INSERT OVERWRITE TABLE my_table_sample 
SELECT * FROM my_table 
TABLESAMPLE (1 PERCENT) t;
Run Code Online (Sandbox Code Playgroud)

您可以更改百分比以匹配特定的样本大小要求.