我创建了一个外部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');
有什么想法吗?
答案 0 :(得分:0)
结果模式文件(由sqoop生成)不正确。我最后使用“avro-tools getschema”创建了一个新的模式文件。一旦我使用了该模式文件,一切都按预期工作。