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

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

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

  1. {
  2. "trafficSource":{
  3. "source":"(direct)",
  4. "medium":"(none)"
  5. },
  6. "device":{
  7. "browser":"(not set)",
  8. "browserVersion":"(not set)",
  9. "operatingSystem":"(not set)",
  10. "operatingSystemVersion":"(not set)",
  11. "isMobile":false,
  12. "flashVersion":"(not set)",
  13. "javaEnabled":false,
  14. "language":"(not set)",
  15. "screenColors":"(not set)",
  16. "screenResolution":"(not set)",
  17. "deviceCategory":"desktop"
  18. }
  19. "hits":[
  20. {
  21. "customDimensions":[
  22. {
  23. "index":"1",
  24. "value":"2"
  25. },
  26. {
  27. "index":"2",
  28. "value":"0"
  29. }
  30. ],
  31. }
  32. ],
  33. }

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

js81xvg6

js81xvg61#

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

相关问题