【发布时间】:2016-12-02 17:57:58
【问题描述】:
我创建了一个外部 Hive 表,该表指向一个包含多个 avro 文件的位置。 create 语句没有任何问题,它创建了预期的列。但是,当我尝试运行查询时,该表没有数据。我尝试以几种不同的方式创建表格,但无法正常工作。我还验证了该目录有avro 文件。
CREATE EXTERNAL TABLE table_name
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'
LOCATION '/path/to/avro/data/'
TBLPROPERTIES ('avro.schema.url'='/path/to/schema/ags.avsc');
CREATE EXTERNAL TABLE table_name
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
STORED as AVRO
LOCATION '/path/to/avro/data/'
TBLPROPERTIES ('avro.schema.url'='/path/to/schema/ags.avsc');
有什么想法吗?
【问题讨论】:
-
除非 LOCATION '/path/to/avro/data/' 具有与 ags.svro 数据不同的数据,否则您的陈述看起来是正确的?或确保架构和数据文件之间的格式相同。
-
架构在另一个位置。我相信架构是相同的,因为我从 avro 文件的顶部抓取了架构。