create table hivecomplex
(name string,
phones array<INT>,
deductions map<string,float>,
address struct<street:string,zip:INT>
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
COLLECTION ITEMS TERMINATED BY '$'
MAP KEYS TERMINATED BY '#'
STORED AS AVRO
;
hive> select * from hivecomplex;
OK
John [650,999,9999] {"pf":500.0} {"street":"pleasantville","zip":88888}
Time taken: 0.078 seconds, Fetched: 1 row(s)
Now for the pig
pig -useHCatalog;
a = LOAD 'hivecomplex' USING org.apache.hive.hcatalog.pig.HCatLoader();
dump a;
ne.util.MapRedUtil - Total input paths to process : 1
(John,{(650),(999),(9999)},[pf#500.0],(pleasantville,88888))
感谢您的答复。你的例子正在工作。我在我的hive_avro表中使用了复杂的数据类型(Array,Map和Struct)。看起来像Struct数据类型导致了问题。有什么想法吗? –
猪中支持复杂的数据类型。可以创建另一个关系使用LIMIT 5并转储该关系。 hive_avro_table是配置单元表还是视图?猪不支持视图。如果hive_avro_table是位置上的外部表检查权限,并且也是/ tmp –