在嵌套json上创建配置单元表

zxlwwiss  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(318)

我正试图基于hadoop中的一些json数据在hive中创建一个表。困难的部分是我有一个嵌套的json,其中的数据没有在key:value pairs:

{  
   "trafficSource":{  
      "source":"(direct)",
      "medium":"(none)"
   },
   "device":{  
      "browser":"(not set)",
      "browserVersion":"(not set)",
      "operatingSystem":"(not set)",
      "operatingSystemVersion":"(not set)",
      "isMobile":false,
      "flashVersion":"(not set)",
      "javaEnabled":false,
      "language":"(not set)",
      "screenColors":"(not set)",
      "screenResolution":"(not set)",
      "deviceCategory":"desktop"
   }

   "hits":[  
      {  
         "customDimensions":[  
            {  
               "index":"1",
               "value":"2"
            },
            {  
               "index":"2",
               "value":"0"
            }
         ],
      }
   ],
}

我想在配置单元表中为json的“hits.customdimensions”中的每个值创建一列。每个数组都包含一个索引和该索引的值。例如,index=1的列将被命名为“user\u id”,并且该值将来自该数组中的“value”参数。
有没有一个简单的方法来创建这个配置单元表?
谢谢!

js81xvg6

js81xvg61#

您可以在hive中使用json\tuple udf来解析json中的属性,但是我无法找到解析嵌套json的方法。
以下内容将帮助您解析json:
如何用json数据生成配置单元表?
为了将嵌套的json放入配置单元表中,我建议您使用python和hadoop流解析json文件,并将它们转换为扁平结构。从那里开始很容易。

相关问题