Hive:根据查询结果插入多个表
Posted
技术标签:
【中文标题】Hive:根据查询结果插入多个表【英文标题】:Hive : inserting into multiple tables based on query result 【发布时间】:2012-03-12 11:51:14 【问题描述】:我正在尝试运行配置单元查询来过滤无效记录。这是我正在做的 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】:回答您的问题:
1) 如果您有自定义验证标准 UDF 可能是要走的路。如果我这样做,我会创建一个返回布尔值的 is_valid UDF(而不是返回 NULL 与非 NULL)。
2) 是的,UDF 确实运行了两次。
3) 很高兴你问。查看 Hive 中可用的 explode 函数
【讨论】:
以上是关于Hive:根据查询结果插入多个表的主要内容,如果未能解决你的问题,请参考以下文章