Hive:根据查询结果插入多个表

时间:2012-03-12 11:51:15

标签: hadoop user-defined-functions hive

我正在尝试运行配置单元查询以过滤无效记录。这就是我在做的事情 1.将csv文件加载到单个列表中。 2.定义UDF my_validation以验证每条记录 3.执行查询

from pgstg INSERT OVERWRITE LOCAL DIRECTORY '/tmp/validrecords.out'  
select * where  my_validation(record) IS NOT NULL
INSERT OVERWRITE TABLE PGERR
select record where  my_validation(record) IS  NULL;

以下是我的问题: 一个。有没有更好的方法来过滤无效记录; 湾my_validation UDF是否在整个表上运行两次? C。将单个列拆分为多个列的最佳方法是什么。

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:1)

回答你的问题:

1)如果您有自定义验证标准,UDF可能就是您的选择。如果我这样做,我会创建一个返回布尔值的is_valid UDF(而不是返回NULL而不是NULL)。

2)是的,UDF确实运行了两次。

3)很高兴你问。查看Hive中可用的explode函数