【问题标题】:Creating structs in an array using Hive使用 Hive 在数组中创建结构
【发布时间】:2015-08-31 09:44:41
【问题描述】:

我正在 hive 中为 twitter json 文件创建表。这是示例文件。我面临的问题是我无法使用结构创建数组,因为在下面的数据中,单个数组中有 4 个相同的结构。谁能告诉我如何为以下数据创建数组。我尝试为每个结构赋予不同的名称,表已成功创建,但我无法从表中提取数据。请帮助。 谢谢

> "variants": [
         {
           "bitrate": 2176000,
           "content_type": "video\/mp4",
           "url": "https:\/\/video.twimg.com\/ext_tw_video\/560070131976392705\/pu\/vid\/1280x720\/c4E56sl91ZB7cpYi.mp4"
         },
         {
           "bitrate": 320000,
           "content_type": "video\/mp4",
           "url": "https:\/\/video.twimg.com\/ext_tw_video\/560070131976392705\/pu\/vid\/320x180\/nXXsvs7vOhcMivwl.mp4"
         },
         {
           "bitrate": 832000,
           "content_type": "video\/webm",
           "url": "https:\/\/video.twimg.com\/ext_tw_video\/560070131976392705\/pu\/vid\/640x360\/vmLr5JlVs2kBLrXS.webm"
         },
         {
           "bitrate": 832000,
           "content_type": "video\/mp4",
           "url": "https:\/\/video.twimg.com\/ext_tw_video\/560070131976392705\/pu\/vid\/640x360\/vmLr5JlVs2kBLrXS.mp4"
         },
         {
           "content_type": "application\/x-mpegURL",
           "url": "https:\/\/video.twimg.com\/ext_tw_video\/560070131976392705\/pu\/pl\/r1kgzh5PmLgium3-.m3u8"
         }
       ]

【问题讨论】:

    标签: arrays hadoop twitter struct hive


    【解决方案1】:

    试试这个,

    CREATE TABLE complex_json (
      variants:array<struct<bitrate:int,content_type:string, url:string>>>
    )
    ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe';
    

    从https://github.com/rcongiu/Hive-JSON-Serde获取serde

    【讨论】:

    • 表已创建,但是当我在加载 json 数据后运行此查询“SELECT extended_entities.media.video_info.variants.bitrate FROM f_t_tweets;”它抛出此错误“失败:SemanticException [错误 10042]:第 1:7 行。运算符仅在结构或结构类型列表'bitrate'上受支持”
    猜你喜欢
    • 2019-09-24
    • 1970-01-01
    • 1970-01-01
    • 2013-03-15
    • 2012-07-07
    • 2014-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多