【问题标题】:External Hive table from AVRO files says it has no data来自 AVRO 文件的外部 Hive 表说它没有数据
【发布时间】: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 文件的顶部抓取了架构。

标签: hadoop hive avro


【解决方案1】:

原来架构文件(由 sqoop 生成)不正确。我最终使用“avro-tools getschema”创建了一个新的架构文件,一旦我使用了该架构文件,一切都按预期工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-21
    • 2016-12-26
    • 2021-03-13
    相关资源
    最近更新 更多