测试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"}}

前期的 准备工作 :

需要根据hive的版本 去下载相关包:(放在 lib中)

json-serde-1.3.8-jar-with-dependencies.jar

有的版本 还需要 hive-hcatalog-core-2.0.1.jar (一般hive自带)

然后启动hive:

《第一种方式》:直接当成一个字段去处理:(这种方式不行的)

执行样例:

create external table if not exists json_01(
json string
)
row format delimited 
lines terminated by '\n'
stored as textfile

结果:  虽然可以select * from json_01     但是   内部的 第二层结构就无法查看了  此方法不行

《第二种方式》:还是当成一个字段 只不过我需要用json 格式去解析:(一般较常用的方法)

create external table if not exists json_old(
json string
)
row format serde 'org.apache.hadoop.hive.contrib.serde2.JsonSerde' 
stored as textfile

有可能上面的引用包 不对,hive的版本过低缘故  那就换成 ‘org.openx.data.jsonserde.JsonSerDe’

查看 方式 也有两种:get_json_object   和  json_tuple

<get_json_object>方式

select * from json_01                 -----------------------整个json

select get_json_object(js.json,'$.data'),get_json_object(js.json,'$.web') from json_01 js;

select get_json_object(js.json,'$.data.dt'),get_json_object(js.json,'$.web.web') from json_01 js;    ----------嵌套

select get_json_object(data.dl,'$.dt') from (select get_json_object(js.json,'$.data') as dl from json_01 js) data;

<json_tuple>方式

select json_tuple(json,"data") from json_01;  --------------MR

select json_tuple(get_json_object(json,'$.data'),"dt","hu") from json_01

select js2.js2_data_dt,js3.js3_web_web,js4.js4_home from json_01 js lateral view json_tuple(js.json,'data','web','house')js1 as js1_data,js1_web,js1_house
lateral view json_tuple(js1.js1_data,'dt','hu')js2 as js2_data_dt,js2_data_hu
lateral view json_tuple(js1.js1_web,'web','whichfor')js3 as js3_web_web,js3_web_whichfor
lateral view json_tuple(js1.js1_house,'home','areo','price','num')js4 as js4_home,js4_areo,js4_price,js4_num

《带有其他结构的 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"},{...........}]}

--------------------------------数据挖掘插件中 一些配置项  会带有   []

去掉中括号:

lateral view posexplode(split(regexp_replace(regexp_replace(js1.js1_house,'\\}\\,\\{','\\}\\|\\|\\{'),'\\[|\\]',''), '\\|\\|')) js11

regexp_replace(js1.js1_house,'\\}\\,\\{','\\}\\|\\|\\{')    ===> (将 data  中的 “ },{”转成了 “}||{” )
regexp_replace(regexp_replace(js1.js1_house,'\\}\\,\\{','\\}\\|\\|\\{'),'\\[|\\]','')   ===>  将 “[]” 变成 “”  空值
split(regexp_replace(regexp_replace(js1.js1_house,'\\}\\,\\{','\\}\\|\\|\\{'),'\\[|\\]',''), '\\|\\|')   将 data 按 “||”切分

json array 格式 转成了一个数组 再有posexplode 变成 (p,json)键值对


《第三种方式》:转换成map 结构    可以用到两种解析包:

create external table if not exists json(
data map<string,string>,
web map<string,string>,
house map<string,string>
)
row format serde 'org.openx.data.jsonserde.JsonSerDe'
stored as textfile

create external table if not exists json(
data map<string,string>,
web map<string,string>,
house map<string,string>
)
row format serde 'org.apache.hive.hcatalog.data.JsonSerDe'
stored as textfile

select data['dt'] from json

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

  1. python读取json格式的超参数

    python读取json格式的超参数 json文件: {"full_finetuning": true,"max_len": 180,"learnin ...

  2. 读取json格式的图片、文字并保存成图片

    读取json格式的图片.文字并保存成图片 说明 从数据库中获取到图片.中文.英文信息后,将其合成json文件,图片格式为base64格式,需要将其转成二进制形式,然后将其保存成图片,将中文.英文信息保 ...

  3. HTML页面之间传递Json格式数组的方式

    HTML页面之间传递Json格式数组的方式 如下: a.html localStorage.setItem("userinfoList", JSON.stringify(list) ...

  4. 使用 Python 读取 json 格式文件并查重

    场景如下: 格式为 json 的文件中存在多行测试数据,需要判断文件中 "esbsn" 字段的值是否存在重复数据 {"time":"2022-08-0 ...

  5. netcore读取json文件_.net core读取json格式的配置文件

    在.Net Framework中,配置文件一般采用的是XML格式的,.NET Framework提供了专门的ConfigurationManager来读取配置文件的内容,.net core中推荐使用j ...

  6. pyhton读取json格式的气象数据

    原文关于读取pm25.in气象数据的pyhton方法,以及浅析python json的应用 以pm25.in网站数据为例. 1.方法介绍 首先感谢pm25.in提供了优质的空气污染数据,为他们的辛勤劳 ...

  7. python读取json格式文件大量数据,以及python字典和列表嵌套用法详解

    1.Python读取JSON报错:JSONDecodeError:Extra data:line 2 column 1 错误原因: JSON数据中数据存在多行,在读取数据时,不能够单单用open(), ...

  8. python的json格式_python读取json格式

    对于处理json格式,如果是要把python数据格式转换成json,使用json.dumps(),如: data = { 'name' : 'ACME', 'shares' : 100, 'price ...

  9. web 后台返回json格式数据的方式(status 406)

    1.在类上使用注解 @RestController public class HttpComentInterface {} 2.在方法是使用注解  @ResponseBody @RequestMapp ...

最新文章

  1. 华为服务器面板显示,服务器面板怎么查看
  2. 三线压力传感器原理_进气压力传感器原理与检修
  3. 小程序中ajax返回数据,请问在小程序中如何从请求success中将数据返回给对象data?...
  4. 小米9 Pro 5G评测:史上最低价5G手机
  5. .net找List1和List2的差集
  6. debian下,下载linux内核
  7. 用户自治的数字身份在我国的标准
  8. 计算机出现假桌面怎么解决办法,Win10系统下“AppHangXProcB1”导致桌面频繁假死如何解决?...
  9. SVM作业题:支持向量机求最优分类面
  10. linux怎么把dos改成unix_如何将文本文件在 Unix和DOS格式之间转换
  11. PIPIOJ1451: PIPI的数学题VIII
  12. 面向对象开发期末复习概述(四)
  13. python 将单词分割成字母_拆分两个字母创建单词python 3
  14. wincc 激活记录运行系统
  15. 活动预告丨易盾CTO朱浩齐将出席2018 AIIA大会,分享《人工智能在内容安全的应用实践》...
  16. 初学Web前端会用到开发工具【零基础web前端入门视频教程】
  17. GPU 利用率低常见原因分析及优化
  18. python数据导出excel模板中的脚本_Python实现将数据库一键导出为Excel表格的实例...
  19. js的三种弹出对话框
  20. 商务计算机比赛,湖南商务职业技术学院获全国职业院校技能大赛“计算机网络应用”赛项二等奖...

热门文章

  1. 厦门大学计算机科学庄朝晖,庄朝晖-厦门大学信息学院 | 掌握信息,把握未来...
  2. http://cued.xunlei.com/
  3. 【Qt一骚操作】Qt 开发中触发鼠标悬停事件
  4. samba 服务搭建
  5. AS5600 12 位可编程非接触式电位器
  6. 服务器主板开机显示器无信号,显示器无信号,详细教您怎么解决电脑开机后显示器无信号...
  7. 服务器显卡无信号,电脑开机主机正常运行显示器显示无信号
  8. 基于ARM的嵌入式Linux移植真实体验1-基本概念
  9. java零散知识记录
  10. 客户拖尾款,怎么办?