CREATE EXTERNAL TABLE avro_price_external
PARTITIONED BY (year
int
, month
int
, day
int
, hour
int
)
ROW FORMAT SERDE
'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
STORED AS INPUTFORMAT
'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
TBLPROPERTIES (
'avro.schema.url'
=
'hdfs:///user/me/camus/camus-avsc/PriceSchema.avsc'
);
hive> ALTER TABLE avro_price_external ADD IF NOT EXISTS PARTITION (year=
2014
, month=
03
, day=
31
, hour=
19
) LOCATION
'/user/me/camus/dest/pricesingle/hourly/2014/03/31/19'
;
hive> select * from avro_price_external; OK
Failed with exception java.io.IOException:org.apache.hadoop.hive.serde2.avro.BadSchemaException
Time taken:
0.301
seconds
Thanks all for your response. I will upgrade to the latest cdh4.
Also one suggestion. Could we add one function to camus2hive to pick up a schema from hdfs location? Or from httpfs? Thanks.