【问题标题】:Hive avro table schema not updated after setting properties of table from avro.schema.literal to avro.schema.url将表的属性从 avro.schema.literal 设置为 avro.schema.url 后,Hive avro 表架构未更新
【发布时间】:2017-02-17 05:54:56
【问题描述】:

首先我创建了一个如下所示的 avro hive 表。

CREATE EXTERNAL TABLE user
STORED AS AVRO
LOCATION '/work/user'
TBLPROPERTIES  ('avro.schema.literal'='{"type":"record","name":"user", "fields": [{ "name":"user_id", "type":["null","int"], "default":null, "columnName":"user_id", "sqlType":"4" }, { "name":"username", "type":["null","string"], "default":null, "columnName":"username", "sqlType":"-1" }], "tableName":"user"}')

我能够看到数据。

我已经更改了一些架构,但这次是通过使用以下代码进行的。

ALTER TABLE user SET TBLPROPERTIES ('avro.schema.url'='/work/avro/user_schema.avsc')

url中的新架构如下。

{"type":"record","name":"user", "fields": [{ "name":"user_id", "type":["null","int"], "default":null, "columnName":"user_id", "sqlType":"4" }, { "name":"username", "type":["null","string"], "default":null, "columnName":"username", "sqlType":"-1" }, { "name":"city", "type":"string", "default":"Pune", "columnName":"city" }], "tableName":"user"}

架构未更新。表格仅显示 2 个字段,即 user_id 和用户名。

当模式以如下文字形式提供时,同样的事情也有效。

ALTER TABLE user SET TBLPROPERTIES ('avro.schema.literal'='{"type":"record","name":"user", "fields": [{ "name":"user_id", "type":["null","int"], "default":null, "columnName":"user_id", "sqlType":"4" }, { "name":"username", "type":["null","string"], "default":null, "columnName":"username", "sqlType":"-1" }, { "name":"city", "type":"string", "default":"Pune", "columnName":"city" }], "tableName":"user"}');

但不是通过指定上面指定的 url。

但这不起作用。表架构未更新。

【问题讨论】:

  • 你找到解决办法了吗?
  • 你找到答案了吗?文本和 url 模式都在 hive 表中可用。
  • 找到答案 ALTER TABLE . UNSET TBLPROPERTIES('avro.schema.literal');如果你这样做,那么“avro.schema.url”将被启用。

标签: hadoop hive schema avro


【解决方案1】:

avro 架构文件需要在 hdfs 中,参考如下。

TBLPROPERTIES ('avro.schema.url'='hdfs:///user/cloudera/categories.avsc')

【讨论】:

    猜你喜欢
    • 2018-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-31
    • 2017-10-28
    • 2011-03-20
    • 2011-12-30
    相关资源
    最近更新 更多