Hive:将查询结果保存在HDFS中并加载到新表

时间:2016-08-18 06:53:57

标签: hadoop hive hiveql tez

我有一个有三个部分分区的蜂巢表 的(DT,SERVICE_TYPE,PV)

我想在不同的数据库中创建一个新表,其中包含来自此原始表的过滤数据。 (按用于分区的列过滤)

所以我使用SELECT查询数据如下,并将结果保存在HFDS

INSERT OVERWRITE DIRECTORY  '/user/atscale/filterd-ratlog' SELECT * FROM rat_log_normalized WHERE dt >= '2016-05-01' AND dt <='2016-05-31' AND service_type='xxxxx_jp' AND event_type='yy';

这是HDFS中的结果文件夹结构。它被分成531个文件:

  

hdfs dfs -ls / user / atscale / filterd-ratlog

     

找到531项   -rwxr-xr-x 3 atscale atscale 8838075079 2016-08-18 06:20 / user / atscale / filterd-ratlog / 000000_0   -rwxr-xr-x 3 atscale atscale 8879084968 2016-08-18 06:15 / user / atscale / filterd-ratlog / 000001_0   -rwxr-xr-x 3 atscale atscale 8821619748 2016-08-18 06:20 / user / atscale / filterd-ratlog / 000002_0   -rwxr-xr-x 3 atscale atscale 8724063719 2016-08-18 06:20 / user / atscale / filterd-ratlog / 000003_0。 。 。   -rwxr-xr-x 3 atscale atscale 6878819716 2016-08-18 06:42 / user / atscale / filterd-ratlog / 000527_0   -rwxr-xr-x 3 atscale atscale 5461395906 2016-08-18 06:27 / user / atscale / filterd-ratlog / 000528_0   -rwxr-xr-x 3 atscale atscale 6222887747 2016-08-18 06:26 / user / atscale / filterd-ratlog / 000529_0   -rwxr-xr-x 3 atscale atscale 692289350 2016-08-18 06:37 / user / atscale / filterd-ratlog / 000530_0

现在,哇,我可以将HDFS文件中的数据加载到我的新表中吗?我也想保留分区..

1 个答案:

答案 0 :(得分:2)

我猜您正在寻找外部表:

<script>

var data = '${raw(data as String)}';
var json = JSON.parse(data);
alert(json.type);

var authorization = json.key;

</script>