我正在尝试运行配置单元查询以过滤无效记录。这就是我在做的事情 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。将单个列拆分为多个列的最佳方法是什么。
非常感谢你的帮助。
答案 0 :(得分:1)
回答你的问题:
1)如果您有自定义验证标准,UDF可能就是您的选择。如果我这样做,我会创建一个返回布尔值的is_valid UDF(而不是返回NULL而不是NULL)。
2)是的,UDF确实运行了两次。
3)很高兴你问。查看Hive中可用的explode函数