我有如下的猪关系:
FINAL = {input_md5::type: chararray,input_md5::name: chararray,input_md5::id: long,input_md5::age: chararray,test_1:: type: chararray,test_2::name:chararray}
我试图存储input_md5
与hive表关系的所有列.像所有input_md5::type: chararray,input_md5::name: chararray,input_md5::id: long,input_md5::age: chararray
没有采取test_1:: type: chararray,test_2::name:chararray
在pig中是否有任何命令只过滤.的input_md5
内容如下所示:
STORE= FOREACH FINAL GENERATE all input_md5::type .
我知道猪有:
FOREACH FINAL GENERATE all input_md5::type as type
语法,但我有很多列,所以我不能as
在我的代码中使用.
因为当我尝试:
STORE= FOREACH FINAL GENERATE input_md5::type .. bus_input_md5::name;
猪抛出一个错误:
org.apache.hive.hcatalog.common.HCatException : 2007 : Invalid column position in partition schema : Expected column <type> at position 1, found column <input_md5::type>
提前致谢,
解决了这个问题,下面是修复:
使用以下某些过滤条件创建关系:
DUMMY_RELATION= FILTER SOURCE_TABLE BY type== '';
(我选了一个名为type的列,这可以通过表中的任何列进行过滤,重要的是我们需要它的模式)
FINAL_DATASET= UNION DUMMY_RELATION,SCHEMA_1,SCHEMA_2;
(这个新的DUMMY_RELATION
n应该放在联合中的第一个)现在你不再有::
运算符你的列名将匹配hive表的列名,前提是你的源表(到DUMMY_RELATION)和目标表有相同的列顺序.
谢谢你自己:)
归档时间: |
|
查看次数: |
824 次 |
最近记录: |