【问题标题】:How to import an AvroKeyValueOutputFormat file into hive?如何将 AvroKeyValueOutputFormat 文件导入配置单元?
【发布时间】:2014-04-10 09:17:50
【问题描述】:

我的 mapreduce 使用 AvroKeyValueOutputFormat 编写了一个 avro 文件,但我在将该文件导入 hive 时遇到了一些麻烦。

我必须如何在 hive 中定义我的架构才能使其正常工作?

【问题讨论】:

    标签: hadoop mapreduce hive cloudera avro


    【解决方案1】:

    您必须使用中描述的 AvroSerDe

    http://goo.gl/TwsRTd

    或者您必须将输出转换为您在定义的配置单元表中使用的 RowFormat(再次使用另一个 mapreduce 作业)

    问候

    马丁

    【讨论】:

      【解决方案2】:

      AvroSerDe 的格式可能有点棘手。只要您知道 Avro 模式,尽管它往往会产生奇迹。希望这个例子有所帮助。

      CREATE EXTERNAL TABLE HIVEDATA
      ROW FORMAT
      SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
      WITH SERDEPROPERTIES ('avro.schema.literal'='
      {
          "namespace": "originalname",
          "name": "feature_value",
          "type": "record",
          "fields": [
              {"name": "acct_id", "type": "long"},
              {"name": "feature_name", "type": ["null","string"], "default": null},
              {"name": "namespace", "type": ["null","string"], "default": null},
              {"name": "feature_value", "type": ["null","double"], "default": null}
          ]
      }
      ')
      STORED AS
      INPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
      OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
      LOCATION '/hdfs/location'
      ;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-12
        • 1970-01-01
        • 2016-05-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多