2012-03-12 49 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函數