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

hive 对json数据的处理 hive 存储,解析,处理json数据 hive 处理json数据总体来说有两个方向的路走1、将json以字符串的方式整个入Hive表,然后通过使用UDF函数解析已经导入到hive中的数据,比如使用LATERAL VIEW json_tuple的方法,获取所需要的列名。2、在导入之前将json拆成各个字段,导入Hive表的数据是已经解析过得。这将需要使用第三方的SerDe。 测试数据为新浪微博测试... 阅读详情

 

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

 

hive中自定义JsonSerde处理复杂结构的json数据 使用背景hive自身提供UDF函数get_json_object 支持json数据的操作,但是使用效果并不是非常理想。如果可以像普通hive建表指定字段映射到json中的key就太好了!幸好hive本身提供了数据序列化反序列化的接口Serde,开发者只需要自定义实现Serde接口实现自己的逻辑即可。下面介绍的是通过开源工具Hive-JSON-Serde-develop来实现的序列化反序列化操作实例。 阅读详情

相关推荐

[QDS]从零开始,写第一个Qt Design Studio到程序调用的项目

最近在使用Qt Design Studio进行开发,但是简中网上要不就是只搜得到Qt Designer(Qt Creator内部库),要不就只搜得到一点营销号不知道从哪里搬来的账号,鉴于Qt Design Studio是一个这么强大的软件,自然是需要来进行一下小小的实践的。所以开了这篇文章,方便没有使用过Qt Design Studio 和 QML的开发者也可以快速上手QDS(Qt Design Studio)。在本文中,你将学会如何使用QDS开发一个简单的QML程序,与你的C++后端代码进行交流。

Andius的博客 8215

hive-jsonserde建表映射

jsonserde简介 直接解析json数据转换成hive表,可以配置映射。需要相关jar包支持~ 样例数据 {"a":"2021-03-02 21:27:55","e":"activity_on_start","faceImage":"","p":{"an":".ui.VIPCenterActivity","from":"com.imprexion.adplayer","fromActivity":""},"t":1614691675578,"uid":-1,"v":3,"device_id": "1f4

Mr.Zheng的博客 744

告别OFDM卡顿:用MATLAB手把手仿真AFDM波形,搞定高铁、无人机通信的时变信道难题

本文详细介绍了如何使用MATLAB仿真AFDM波形,解决高铁和无人机通信中的时变信道难题。通过仿射变换技术,AFDM在多普勒频移严重的场景下表现优异,显著提升通信质量。文章包含参数配置、波形生成、性能对比等实战内容,适合通信工程师和研究人员参考。

weixin_27014595的博客 319

HIVE之JSON字符串与(array数组,map映射,struct结构体)

HIVE之JSON字符串与(array数组,map映射,struct结构体)

wowulita123的博客 1380

基于Codex/Claude Code的学术技能包:13个Skill实现科研全流程自动化

写论文最头疼的是什么?是面对海量文献无从下手,还是实验数据一团乱麻,或者是好不容易有了结果,却卡在写作和格式调整上?如果你也经历过从选题到投稿的完整科研周期,就会明白每个环节都可能消耗大量时间精力。今天要分享的这套工具链,正是为了解决这些痛点而生——基于 Codex 和 Claude Code 平台的学术技能包(Academic Skills),它通过 13 个精心设计的 Skill,将一篇论文从 0 到 1 的全流程自动化、标准化,让你能更专注于研究本身。 这套技能包并非单一工具,而是一个覆盖文献阅读、数

weixin_33979203的博客 545

四十二、Fluent欧拉模型流化床模拟:从基础设置到颗粒动力学解析

本文详细解析了Fluent欧拉模型在流化床模拟中的应用,从基础概念到颗粒动力学设置全面覆盖。重点介绍了欧拉模型的颗粒温度概念、多相流配置技巧以及关键参数优化策略,帮助工程师准确模拟气固两相流动现象。通过实用案例演示了网格检查、求解器配置和边界条件设置的最佳实践。

weixin_27303545的博客 445

hive根据json格式文件加载数据

无

westen51的博客 205

GEE:关于遥感生态指数(RSEI)的若干疑问

本文记录了若干关于在 Google Earth Engine (GEE)平台上,计算基于主成分分析(PCA)的遥感生态指数(RSEI)的问题。并记录了解决这些问题的一些答案。问题包括,主成分分析的特征值的正负,主成分的占比,去云后空值像素的处理方法,异常值处理方法,如何看载荷等。

养乐多的博客 3418

hive (2.01)读取 json 格式 的处理方式 2018-4-24

测试json  数据 格式 样例: {"data":{"dt":"2018-12-13","hu":"17:17:17"},"web":{"web":"maitianzaixian.com.cn","whichfor":"computer"},"house":{"home":"yuanyangguoji","areo":400,"price":3400,"num":"10#102"}}

machen990519的博客 704

BES2810_best1702_best1702_ibrt_三者关系深度解析

一颗芯片的三个名字:BES2810、best1702 与 best1702_ibrt 关系深度解析

weixin_42162924的博客 349

增距镜或中继镜选型

增距镜光路图

camerall 5247

hive如何创建json表

背景:在业务中,对于json数据一般通过`get_json_object`或者`json_tuple`来解析json数据。对于有json和常规数据混合这种,用这两个函数比较常见。但是对于全是文本的这种json数据,我们可以通过创建json表与json表进行映射去查询或者统计数据。

程老师的博客 2236

Spring 核心技术解析【纯干货版】- I:Spring 基础模块 Spring-Core 模块精讲

Spring-Core 模块,是 Spring 核心容器模块之一。虽然 “Core” 本身就有 “核心的,重要的部分” 的含义,但是它并非是实现(常被我们说为 Spring 核心机制)IOC / AOP 的模块。Spring 中的 IOC 机制,主要来自于 BeanFactory 容器和 ApplicationContext 容器,这二者分别由同为核心容器模块的 Spring-Bean 模块 和 Spring-Context 模块所提供。

栗筝i的博客 2526

Hive 利用 JsonSerde 处理 JSON 格式数据

JsonSerde 的 github 地址:https://github.com/rcongiu/Hive-JSON-Serde JsonSerde 的 jar下载地址:http://www.congiu.net/hive-json-serde/

storm_fury 7410

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【hive】hive加载json数据和解析json(二)

超久超久没写博客了,近来的都是比较杂的临时活,大家都在喊他的活很急,最要紧,挺令我心烦的,不过有活总比没活做好吧! 言归正传,本文讲的是hive解析json格式的数据 最近处理了这么一份数据,json格式的,其实我之前写了一篇博客: hive加载json数据和解析json(一):https://blog.youkuaiyun.com/lsr40/article/details/7939916...

lsr40的博客 3940

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

hive解析json数据

hive处理json数据总体来说有两个方向的路走 1、将json以字符串的方式整个入Hive表,然后通过使用UDF函数解析已经导入到hive中的数据,比如使用LATERAL VIEW json_tuple的方法,获取所需要的列名。 2、在导入之前将json拆成各个字段,导入Hive表的数据是已经解析过得。这将需要使用第三方的SerDe。 测试数据为新浪微博测试公开数据 该数据采用json格式存储, id代表当前用户微博的id, ids代表当前微博用户关注其他微博用户的id列表, total_..

hzp666的博客 6461

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

json格式的数据导入到hive表中

总体来说,有两大类方法:  1、将json以字符串的方式整个入Hive表,然后使用LATERAL VIEW json_tuple的方法,获取所需要的列名。  2、将json拆成各个字段,入Hive表。这将需要使用第三方的SerDe。 第一种方法的的缺点是不能处理复杂类型(如果hive表中字段为array,map等)。 实战: 1. 创建表 [sql] view

purisuit_knowledge的专栏 1万+

业务场景中Hive解析Json常用案例

json_serde库提供了一种在Hive中直接将JSON格式的数据解析成表的方式,可简化处理流程。现在希望建立一张表,使得表可以直接映射上数据文件hive中建表age int,将json文件上传至建表对应hdfs路径# 也可以通过hive的sql命令行直接load数据文件查看表数据验证可以看到数据文件8行记录,成功映射对应了hive中wangt_666_json表的8条数据。

wt334502157的博客 1746

hive处理json数据_0659-6.2.0-Hive处理JSON格式数据

作者:余枫1.文档编写目的在使用Hive处理数据的过程中会遇到各种各样的数据源,其中较为常见的是JSON格式的数据,Hive无法直接处理JSON格式的数据,需要依赖于JSONSerDe。SerDe即序列化和反序列化,JSONSerDe基本思想是使用json.org的JSON库,使用这个库可以读取一行数据并解析为JSONObject,然后解析到Hive中的数据行。因此JSON文件的每行必须是一个完整...

weixin_35638218的博客 289

关于hive自定义JsonSerde处理json

Hive自身提供UDF函数对json数据格式解析的函数,即get_json_object(…)与json_tuple(…)支持json数据的操作,但是使用效果并不是非常理想。如果可以像普通hive建表指定字段映射到json中的key就太好了!幸好hive本身提供了数据序列化反序列化的接口Serde,开发者只需要自定义实现Serde接口实现自己的逻辑即可。下面介绍的是通过开源工具Hive-JSON-

wenwen360360的博客 3942

HIVE解析JSON数组

HIVE解析JSON数组 数据示例: [{“payAmount”:“375000”,“payChannelCode”:“BOC”},{“payAmount”:“376000”,“payChannelCode”:“AOC”}] 1.get_json_object函数提取json数组里面特定字段值 get_json_object可以提取json数组指标位置的值(跟数组一样) select get_json_object('[{"payAmount":"375000","payChannelCode":"BOC

weixin_42412645的博客 6925

hive json 获取_hive 存储,解析,处理json数据

hive处理json数据总体来说有两个方向的路走1、将json以字符串的方式整个入Hive表,然后通过使用UDF函数解析已经导入到hive中的数据,比如使用LATERAL VIEW json_tuple的方法,获取所需要的列名。2、在导入之前将json拆成各个字段,导入Hive表的数据是已经解析过得。这将需要使用第三方的SerDe。测试数据为新浪微博测试公开数据该数据采用json格式存储,id代...

weixin_27066963的博客 614

Hive中处理json类型数据

1、利用函数进行抽取处理。

2301_77543963的博客 714

Hive 处理 json 数据

两种方式 1、将json以字符串的方式整个入Hive表,然后通过使用UDF函数解析已经导入到hive中的数据,比如使用LATERAL VIEW json_tuple的方法,获取所需要的列名。 2、在导入之前将json拆成各个字段,导入Hive表的数据是已经解析过得。这将需要使用第三方的SerDe。 测试数据 测试数据为新浪微博的评论数据,格式如下: { "appCode": "weibo", ...

程序员小陶的大数据分享 520

hive json数据处理

json-serde-1.3.6-SNAPSHOT-jar-with-dependencies.jar 可在github上下载 json数据解析jar 可以上传到hdfs上: 使用是在hive中先add 如: add jar hdfs://tmp/jsonser/json-serde-1.3.6-SNAPSHOT-jar-with-dependencies.jar; 或 add jar /bd/json-serde-1.3.6-SNAPSHOT-jar-with-d...

那年夏天110的博客 291
上一篇: Hive Dynamic Partition
下一篇: Clipboard.js实现复制文本到剪贴板功能
王树民
博客等级 码龄10年 912粉丝 560原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值