HIVE中get_json_object与json_tuple使用处理json格式数据

news/2024/7/6 4:41:53

hive中提供了两种针对json数据格式解析的函数,即get_json_object(…)与json_tuple(…),理论不多说,直接上效果示意图:

假设存在如下json数据对象,若使用hive环境可这么设置:

set hivevar:msg={
"message":"2015/12/08 09:14:4", 
"client": "10.108.24.253", 
"server": "passport.suning.com", 
"request": "POST /ids/needVerifyCode HTTP/1.1",
"server": "passport.sing.co",
"version":"1",
"timestamp":"2015-12-08T01:14:43.273Z",
"type":"B2C","center":"JSZC",
"system":"WAF","clientip":"192.168.61.4",
"host":"wafprdweb03",
"path":"/usr/local/logs/waf.error.log",
"redis":"192.168.24.46"}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • get_json_object函数

当使用get_json_object函数时,则可以这么用:

select get_json_object(‘${hivevar:msg}’,’$.server’) from test;

返回:

passport.sing.com

其中,get_json_object函数第一个参数填写json对象变量,第二个参数使用$表示json变量标识,然后用 . 或 [] 读取对象或数组;

  • json_tuple函数 
    当使用json_tuple对象时,可以显著提高效率,一次获取多个对象并且可以被组合使用,写法如下:

select a.* from test lateral view json_tuple(‘${hivevar:msg}’,’server’,’host’) a as f1,f2;

返回:

passport.sing.com wafprdweb03

其中,需要使用lateral view 视图方法来写,不需要加$标示符读取对象,获取的f1,f2对象可用于array()或map()等函数使用


http://www.niftyadmin.cn/n/3537929.html

相关文章

Impala表使用Parquet文件格式 2017年05月23日

准备了一个 427144792 行的 textfile 格式表 t_item: [impale-host:21000] > select count(1) from t_item; Query: select count(1) from t_item ----------- | count(1) | ----------- | 427144792 | ----------- Fetched 1 row(s) in 191.67s 该表在 hdfs…

近来关于openTSDB/HBase的一些杂七杂八的调优

背景 过年前,寂寞哥给我三台机器,说搞个新的openTSDB集群。机器硬件是8核16G内存、3个146G磁盘做数据盘。 我说这太抠了,寂寞哥说之前的TSDB集群运行了两年,4台同样配置的机器,目前hdfs才用了40%,所以前期先…

Spark DataFrame写入HBase的常用方式

Spark是目前最流行的分布式计算框架,而HBase则是在HDFS之上的列式分布式存储引擎,基于Spark做离线或者实时计算,数据结果保存在HBase中是目前很流行的做法。例如用户画像、单品画像、推荐系统等都可以用HBase作为存储媒介,供客户端…

java http返回的xml格式转成json格式

package Yishikeji.Hbase.Admin.Hbase; import java.io.InputStream; import java.net.URL; import java.net.URLConnection;public class HdfsClusterTest {public static void json() throws Exception{//参数url化 // String city java.net.URLEncoder.encode("…

hadoop集群监控总结

1、取自ResourceManager REST API’s指标&#xff1b; https://hadoop.apache.org/docs/r2.8.4/hadoop-yarn/hadoop-yarn-site/ResourceManagerRest.html http://<rm http address:port>/ws/v1/cluster/metrics http://**.**.***.208:8088/ws/v1/cluster/metrics 集群…

CDH5.15.0安装spark2.3

简介&#xff1a; 在我的CDH5.15.0集群中&#xff0c;默认安装的spark是1.6版本&#xff0c;这里需要将其升级为spark2.x版本。经查阅官方文档&#xff0c;发现spark1.6和2.x是可以并行安装的&#xff0c;也就是说可以不用删除默认的1.6版本&#xff0c;可以直接安装2.x版本&a…

java sqoop api 导mysql数据到hdfs

package com.example.demo.controller;import org.apache.hadoop.conf.Configuration; import org.apache.sqoop.Sqoop; import org.apache.sqoop.tool.SqoopTool; import org.apache.commons.lang3.StringUtils; /*** 创建人 **** 创建时间 2018/12/20*/ public class sqoopte…

centos安装mysql 在线安装

yum install mysql-server -y service mysqld start chkconfig mysqld on chkconfig --list mysqld mysql 进入mysql命令行接口 mysql -u root; use mysql; select user, host, password from user; CREATE USER yishikeji% IDENTIFIED BY yishikeji; GRANT ALL PRIVILEGES ON…