
在大数据 ETL(Extract-Transfer-Load) 过程中,内置经常需要从不同的析函数据源来提取数据进行加工处理,比较常见的内置是从 Mysql 数据库来提取数据,而 Mysql 数据库中数据存储的析函比较常见方式是使用 json 串进行存储。
通过大数据加工处理出来的内置数据是需要具有可直观分析的特点,可从数据分析中挖掘出商业价值的析函。
因此在数据预处理层需要将 json 串进行“拍平”处理,内置所谓“拍平”是析函指将 json 中的 key 转换为表的列字段,其 key 对应的内置 value 值则为列字段对应的值。
“拍平”的析函处理行业内也可称为“行转列”处理,我举个例子你就能明白什么是内置行转列了。
user表字段如下:

现需要将 user 表中字段 detail_info 中的析函 json 串值,以每个 key 作为 user_detail_info 表的内置字段来进行存储。
实现的亿华云析函 user_detail_info 表字段如下:

从 user 表到 user_detail_info 表的转换,就是内置“行转列”的过程。
你是否会好奇,在 Hive 中这个过程是如何实现的呢?
下文会解答你的疑惑。
解析 json 的字符串 json_string, 返回 path 指定的内容。如果输入的 json 字符串无效,结果返回 NULL。
这个函数每次只能返回一个数据项。
举例: 复制test_data = {"name": "zhangsan", "age": 18,
"preference": "music"}1.2.3. 查询sql语句: 复制select get_json_object(test_data,$.preference);1. 解析结果:
如果需要同时解析 age, preference 这两个字段。
sql语句如下: 复制select get_json_object(test_data,$.age),get_json_object(test_data,$.preference);1. 执行结果如下:
如果需要同时解析的字段很多,很显然使用这种方式写就比较麻烦了,这时候 json_tuple 这个函数是个更好的选择。
解析 json 的字符串 json_string,可同时指定多个 json 数据中的 column,返回对应的WordPress模板 value。如果输入的 json 字符串无效,结果返回 NULL。
举例:例如:test_table1 表的 data 字段存储的是以下 json 串信息,现在想要获取这个 json 串的每个 key 并将其对应的 value 值查询出来。
(1). 准备 test_table1 表 data 字段的 json 数据 复制data = { "name": "rocky",
"age": 20,
"prefer": "dance",
"height": 1.8,
"nation": "China"}1.2.3.4.5.6.7. (2). sql查询语句 复制select t1.name,
t1.age,
t1.prefer,
t1.height,
t1.nation from (select data from test_table1 ) t0 lateral view json_tuple(t0.data,
name,
age,
prefer,
height,
nation ) t1 as name,age,prefer,height,nation;1.2.3.4.5.6.7.8.9.10.11.12.13.14.15. 解析结果:
相关文章:
香港云服务器企商汇源码下载益华科技IT技术网源码库亿华云服务器租用IT资讯网亿华互联全栈开发码力社益强智囊团极客编程益华科技益强科技云站无忧编程之道益强编程堂IT资讯网思维库运维纵横益强IT技术网技术快报科技前瞻云智核亿华云极客码头益强智未来码上建站益强资讯优选多维IT资讯益强科技亿华云计算智能时代亿华科技益强数据堂益强前沿资讯汇智坊益华IT技术论坛亿华智造亿华智慧云益强编程舍创站工坊
0.1233s , 11686.9140625 kb
Copyright © 2025 Powered by Hive 内置的 Json 解析函数,亿华互联 滇ICP备2023000592号-16