hivesql 将数据处理成复杂json

news2024/11/19 18:23:30

类型一

原数据:bankid是array类型
在这里插入图片描述
目标数据:
在这里插入图片描述

{
	"bankname": ["SPDB", "WS_HBBANK", "mytest"],
	"grid": [{
		"name": "阶段1",
		"values": ["38.0,1.0,1.0"]
	}, {
		"name": "阶段2",
		"values": ["11.0,0.0,0.0"]
	}, {
		"name": "阶段3",
		"values": ["11.0,0.0,0.0"]
	}]
}

代码:

SET odps.sql.hive.compatible = true
;

SELECT  
        TO_JSON(NAMED_STRUCT('bankname',bankid,'grid',grid)) AS json
FROM    (
            SELECT  bankid
                    ,COLLECT_LIST(grid) AS grid
            FROM    (
                        SELECT  bankid
                                ,grid
                        FROM    (
                                    SELECT  bankid
                                            ,NAMED_STRUCT('name','阶段1','values',COLLECT_LIST(index_001)) AS index_001
                                            ,NAMED_STRUCT('name','阶段2','values',COLLECT_LIST(index_002)) AS index_002
                                            ,NAMED_STRUCT('name','阶段3','values',COLLECT_LIST(index_003)) AS index_003
                                    FROM    (
                                                SELECT  ARRAY('SPDB','WS_HBBANK','mytest') AS bankid
                                                        ,'38.0,1.0,1.0' AS index_001
                                                        ,'11.0,0.0,0.0' AS index_002
                                                        ,'11.0,0.0,0.0' AS index_003
                                            ) o1
                                    GROUP BY bankid
                                ) o2
                        LATERAL VIEW EXPLODE(ARRAY(index_001,index_002,index_003)) tmp AS grid
                    ) o3
            GROUP BY bankid
        ) o4
;

类型二

原数据:
在这里插入图片描述
目标数据:
在这里插入图片描述

{
	"id": 53830,
	"value": [{
		"下装款式": ["直筒裤"]
	}, {
		"下装设计": ["纯色"]
	}, {
		"厚度": ["正常"]
	}, {
		"版型": ["正常"]
	}, {
		"穿搭风格": ["机能", "休闲"]
	}, {
		"裤长": ["长裤"]
	}]
}

代码:

SELECT  CONCAT('{"id":',id,',"value":',result,'}') AS json
FROM    (
            SELECT  id
                    ,CONCAT('[',CONCAT_WS(',',COLLECT_LIST(CONCAT('{"',type,'":',value,'}'))),']') AS result
            FROM    (
                        SELECT  id
                                ,type
                                ,CONCAT('[',CONCAT_WS(',',COLLECT_LIST(CONCAT('"',value,'"'))),']') AS value
                        FROM    temp_wxt_test_0627
                        GROUP BY id
                                 ,type
                    ) o1
            GROUP BY id
        ) o2
;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/691594.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安全生产月评选活动-优秀的“安全之星”,塑造榜样力量

安全生产月评选活动-优秀的“安全之星”,塑造榜样力量。 推荐功能:投票 企业可以举办安全生产月评选活动,选出优秀的“安全之星”,进行内部评选,塑造榜样力量。 首先,让我们先来了解一下“安全生产月评选活…

MYSQL各种log

本章纲要 1、mysql主从复制是怎么实现的(binlog,relaylog) 2、事物执行原理是怎么保证ACID的(redolog,undolog) 一、Mysql是怎么实现主从复制的 数据库主从设计的好处: 1、实现读写分离,方便扩展&#…

MySQL 磁盘爆了,是 optimize table 的锅

2023-06-26 22:17左右,收到某系统的主库磁盘使用率告警。2023-06-26 23:02左右收到该系统的从库磁盘使用率告警。 收到告警后,登录数据库查看各表的磁盘使用。 经分析发现DB存在一个当日的备份表t_eap_sys_navigation_log_bak_20230626 ,且在…

4077:出栈序列统计

codeup【递归入门】出栈序列统计_codeup编程_战斗的咸鱼的博客-CSDN博客 #include<iostream> using namespace std; int n,sum,ans; void dfs(int out,int in,int not_in){if(outn){ans;return;}if(in>0) dfs(out1,in-1,not_in);if(not_in>0&&in<n) dfs…

Vue模板编译

文章目录 导文Vue模板编译是什么&#xff1f;模拟编译模板总结 导文 Vue框架使用了模板编译的方式来将Vue模板转换为可执行的JavaScript代码。这个编译过程在运行时由Vue的编译器完成。 在Vue中&#xff0c;模板是以HTML标记的形式编写的&#xff0c;其中可以包含Vue的特殊语法…

【探索 Kubernetes|作业管理篇 系列 14】StatefulSet 存储状态

前言 大家好&#xff0c;我是秋意零。 在上一篇中&#xff0c;我们讲解了 StatefulSet 的拓扑状态&#xff1b;我们发现&#xff0c;它的拓扑状态&#xff0c;就是顺序启动/删除、Pod 名称编号命名、将 Pod 名称设为 Hostname 名称、通过 Service 无头服务的 DNS 记录访问。 …

基于Python的海量豆瓣电影、数据获取、数据预处理、数据分析、可视化、大屏设计项目(含数据库)

目录 项目介绍研究背景国内外研究现状分析研究目的研究意义研究总体设计网络爬虫介绍豆瓣电影数据的采集数据预处理大数据分析及可视化豆瓣影评结构化分析 大屏可视化文本可视化总结每文一语 项目介绍 有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博…

虹科DataHub:连接工业自动化的桥梁,引领企业数字化转型

一、前言 随着智能制造、工业互联网等新一代信息技术的不断发展&#xff0c;IT和OT融合已成为未来制造业数字化转型的重要趋势。得益于开放的系统架构和创新的软件应用&#xff0c;OT&#xff08;工业自动化技术&#xff09;和信息技术&#xff08;IT&#xff09;系统之间的数…

在windows系统中映射网络驱动器时,如何通过非455端口远程访问Linux服务器的Samba服务

声明 通常情况下&#xff0c;在windows中通过Linux服务器的Samba服务去映射网络驱动器时候&#xff0c;一般默认就是直接填入内网Linux服务器ip即可&#xff0c;它会默认445端口。若是我的windows并不和Linux服务器在一个网段时&#xff0c;该如何操作呢&#xff1f; 1 用管理…

一键转发微信好友朋友圈,自动跟圈

今天咱来讲一下如何实现一键转发朋友圈&#xff1f; 如何一键跟圈&#xff0c;多个微信快速同步发圈&#xff1f; 01 一键转发 浏览朋友圈&#xff0c;在此页面可以浏览所登录的微信号的好友朋友圈&#xff0c;可以实现快速点赞、评论、一键转发。 单击“转发”即可跳转到发…

D. Optical Experiment

题意&#xff1a; D. 光学实验 时间限制&#xff1a;5秒 内存限制&#xff1a;256兆字节 输入&#xff1a;标准输入 输出&#xff1a;标准输出 Phunsuk Wangdu教授进行了一些关于光线的实验。n条光线的实验装置如下&#xff1a; 有一个长方形盒子&#xff0c;在相对的两面…

windows的环回网卡(loopback adapter) 安装方法

0.说明&#xff1a;windows的环回网卡(loopback adapter)的作用&#xff1a; microsoft loopback adapter就是安装在本机上的一块虚拟网卡&#xff0c;它跟本机上的其它物理网卡、和物理网卡连接的网络是没有关系的&#xff0c;你可以理解成这块网卡上的网线接到了另外一个空白…

葡萄风味有奥秘,农科院用机器学习揭示基因渐渗过程

内容一览&#xff1a;基因渐渗与葡萄的驯化、遗传改良密切相关。先前研究揭示了欧洲栽培葡萄中&#xff0c;野生葡萄基因渐渗的基因组信号&#xff0c;但尚未深入研究这些渐渗事件发生的时间、方式、基因组模式和生物学效应。本文中&#xff0c;中国农业科学院深圳农业基因组研…

【杂谈理解】电源芯片设计选型

前言 看B站UP主达尔闻关于电源视频&#xff0c;做的笔记。下述内容中&#xff0c;如有芯片比较皆是性能层面的比较&#xff0c;暂未考虑成本。且老师在视频中&#xff0c;也多次建议说&#xff0c;可以多关注比较新兴的芯片&#xff0c;一般会是有更好的性能。讲的真的很好&…

【MySQL】MySQL数据库,RDBMS 术语,使用说明和报错解决的详细讲解

作者简介&#xff1a; 辭七七&#xff0c;目前大一&#xff0c;正在学习C/C&#xff0c;Java&#xff0c;Python等 作者主页&#xff1a; 七七的个人主页 文章收录专栏&#xff1a; 七七的闲谈 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01;&#x1f496;&#x1f…

转型升级必备:智能客服外包服务的应用实践

随着信息技术的不断发展&#xff0c;人工智能技术在各个领域的应用越来越广泛&#xff0c;其中智能客服外包服务是一个备受关注的领域。智能客服外包服务是指将企业的客服业务交由专业的第三方服务商处理&#xff0c;并运用人工智能技术提供更高效、更优质的客服服务。本文将从…

FineReport学习2

当原始数据中存储的字段不适宜展现在报表上&#xff1b;或原始数据在数据查询时不易修改&#xff0c;但对显示在报表中的值有要求&#xff1b;或需要根据不同的原始数据在报表中显示不同的值时&#xff0c;就可以利用数据字典做巧妙的转化 设置数据字典 数据列的过滤&#xff…

解决程序错误‘找不到vcruntime140.dll,无法继续执行代码’的全面解决方案

在运行某些应用程序或代码时&#xff0c;你可能会遇到一个错误提示&#xff1a;“找不到vcruntime140.dll,无法继续执行代码”。其实遇到这种情况不需要担心&#xff0c;我们有多种方法可以进行解决&#xff0c;今天小编就来给大家详细的说说vcruntime140.dll文件的相关问题&am…

ABIDE Preprocessd 结构态MRI数据集介绍及下载(FreeSurfer流程)

引言 本博客书接上文&#xff1a;ABIDE Preprocessed 结构态MRI数据集介绍及下载&#xff0c;写前一篇的时候因为觉得FreeSurfer流程处理完成的数据过于庞杂&#xff0c;想要从中获得需要的ROI层面形态学特征过于复杂&#xff0c;所以只是简单说明了其下载方式&#xff0c;并未…

DAY34——贪心part3

1. class Solution {public int largestSumAfterKNegations(int[] nums, int K) {// 将数组按照绝对值大小从大到小排序&#xff0c;注意要按照绝对值的大小nums IntStream.of(nums).boxed().sorted((o1, o2) -> Math.abs(o2) - Math.abs(o1)).mapToInt(Integer::intValue)…