2012-03-12 56 views
0

我想运行配置单元查询来过滤无效记录。这是我在做什么 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; 

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

非常感谢您的帮助。

回答

0

回答您的问题:

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

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

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