Hive-JSON 原始数据映射 Hive 表结构

 

2017年08月18日 15:29:35 阅读数:1446 标签: hive json hadoop 大数据  更多

个人分类: 大数据-Hive

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.youkuaiyun.com/u011278496/article/details/77370460

 

参考文档 

 

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-RowFormats&SerDe

 

 

 

创建 HIVE-JSON 表

 

 
  1. -- 添加依赖 jar

  2. ADD JAR /data/tmp/liwei/hive-hcatalog-core-2.1.1.jar;

  3.  
  4.  
  5. DROP TABLE IF EXISTS `tmp.liwei_json_table`;

  6. CREATE TABLE IF NOT EXISTS tmp.liwei_json_table (

  7. `data_param` map<string, string>,

  8. `account_param` map<string, string>,

  9. `role_param` map<string, string>,

  10. `event` map<string, string>

  11. )

  12. comment 'liwei_json_table'

  13. ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'

  14. STORED AS TEXTFILE

  15. ;

  16.  
  17.  
  18. --报错 return code 1 from org.apache.hadoop.hive.ql.exec.ddltask. cannot validate serde: org.apache.hive.hcatalog.data.jsonserde

  19. --解决方案 ,添加对应 jar ,并对添加的 jar 授执行权限

 

创建测试 JSON 文件数据

添加测试JSON数据文件 hive_json_table.json(需要压缩为一行)

 
  1. {

  2. "data_param": {

  3. "game_key_s": "sbkcq",

  4. "game_version_name_s": "1.23",

  5. "game_version_code_s": "1.23b",

  6. "data_from_s": "s",

  7. "create_unix": "1501641267",

  8. "platform_s": "ios",

  9. "region_s": "101",

  10. "server_s": "1011",

  11. "data_unix": "1501641267",

  12. "index": "event",

  13. "type": "progression_8_l",

  14. "data_date": "2017-08-02",

  15. "data_time": "10:34:27",

  16. "data_date_partition": "20170802"

  17. },

  18. "account_param": {

  19. "use_id_s": "1100",

  20. "account_id_s": "1",

  21. "account_name_s": "lw",

  22. "channel_s": "baidu"

  23. },

  24. "role_param": {

  25. "role_id_s": "baidu|110023|1|1011",

  26. "role_name_s": "傻大姐",

  27. "level_i": "90",

  28. "role_class_s": "FaShi",

  29. "role_race_s": "RZ",

  30. "fighting_i": "201289",

  31. "remain_currency_l": "198",

  32. "vip_level_i": 2

  33. },

  34. "event": {

  35. "t0": "world",

  36. "t1": "world_z1",

  37. "t2": "world_z1-2",

  38. "t3": "world_z1-2-killbos",

  39. "t4": "difficult",

  40. "t5": "succeed",

  41. "r_l": "123000"

  42. }

  43. }

 

{"data_param":{"game_key_s":"sbkcq","game_version_name_s":"1.23","game_version_code_s":"1.23b","data_from_s":"s","create_unix":"1501641267","platform_s":"ios","region_s":"101","server_s":"1011","data_unix":"1501641267","index":"event","type":"progression_8_l","data_date":"2017-08-02","data_time":"10:34:27","data_date_partition":"20170802"},"account_param":{"use_id_s":"1100","account_id_s":"1","account_name_s":"lw","channel_s":"baidu"},"role_param":{"role_id_s":"baidu|110023|1|1011","role_name_s":"傻大姐","level_i":"90","role_class_s":"FaShi","role_race_s":"RZ","fighting_i":"201289","remain_currency_l":"198","vip_level_i":2},"event":{"t0":"world","t1":"world_z1","t2":"world_z1-2","t3":"world_z1-2-killbos","t4":"difficult","t5":"succeed","r_l":"123000"}}

 

上传数据到 HDFS

hadoop fs -D speed.limit.kb=10240 -copyFromLocal  /data/tmp/liwei/hive_tmp/hive_json_table.json /user/hive/warehouse/tmp.db/liwei_json_table/

执行测试查询操作

 
  1. hive> select * from tmp.liwei_json_table;

  2. OK

  3. {"game_key_s":"sbkcq","game_version_name_s":"1.23","game_version_code_s":"1.23b","data_from_s":"s","create_unix":"1501641267","platform_s":"ios","region_s":"101","server_s":"1011","data_unix":"1501641267","index":"event","type":"progression_8_l","data_date":"2017-08-02","data_time":"10:34:27","data_date_partition":"20170802"}{"use_id_s":"1100","account_id_s":"1","account_name_s":"lw","channel_s":"baidu"} {"role_id_s":"baidu|110023|1|1011","role_name_s":"傻大姐","level_i":"90","role_class_s":"FaShi","role_race_s":"RZ","fighting_i":"201289","remain_currency_l":"198","vip_level_i":"2"} {"t0":"world","t1":"world_z1","t2":"world_z1-2","t3":"world_z1-2-killbos","t4":"difficult","t5":"succeed","r_l":"123000"}

  4. Time taken: 1.292 seconds, Fetched: 1 row(s)

  5. hive>

  6. >

  7. >

  8. > select data_param from tmp.liwei_json_table;

  9. OK

  10. {"game_key_s":"sbkcq","game_version_name_s":"1.23","game_version_code_s":"1.23b","data_from_s":"s","create_unix":"1501641267","platform_s":"ios","region_s":"101","server_s":"1011","data_unix":"1501641267","index":"event","type":"progression_8_l","data_date":"2017-08-02","data_time":"10:34:27","data_date_partition":"20170802"}

  11. Time taken: 0.121 seconds, Fetched: 1 row(s)

  12. hive> select data_param["game_key_s"] from tmp.liwei_json_table;

  13. OK

  14. sbkcq

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值