当前位置: 首页 > news >正文

posexplode函数实战总结

目录

1、建表和准备数据

2、炸裂实践

3、错误炸裂方式

4、当字段类型为string,需要split一下


对单列array类型的字段进行炸裂时,可以使用lateral view explode

对多列array类型的字段进行炸裂时,可以使用lateral view posexplode。

1、建表和准备数据

--测试posexplode
create table tmp.test_lateral_view_movie_230831(class string,name array<string>,score array<string>);insert into tmp.test_lateral_view_movie_230831 select 'calss1',array('A','B','C'),array('61','66','90');
insert into tmp.test_lateral_view_movie_230831 select 'calss2',array('D','E','F','G'),array('56','67','78','76');
insert into tmp.test_lateral_view_movie_230831 select 'calss3',array('X','Y','Z'),array('77','88','99');select * from tmp.test_lateral_view_movie_230831;

表中数据

2、炸裂实践

--双列炸裂 poexplode 可以将index和数据都取出来,使用两次posexplode并令两次取到的index相等
select class,index_na+1 as stu_id,tmp_name,tmp_score
from tmp.test_lateral_view_movie_230831 
lateral view posexplode(name) tmp_na as index_na,tmp_name
lateral view posexplode(score) tmp_sc as index_sc,tmp_score
where index_na = index_sc

结果

3、错误炸裂方式

--炸裂列会相互交叉,类似与笛卡尔积
select class,tmp_name,tmp_score
from tmp.test_lateral_view_movie_230831 
lateral view explode(name) tmp as tmp_name
lateral view explode(score) tmp as tmp_score

或者

--嵌套炸裂
select  class,tmp_name,tmp_score
from 
(select class,tmp_name,scorefrom tmp.test_lateral_view_movie_230831 lateral view explode(name) tmp as tmp_name
) a
lateral view explode(score) tmp as tmp_score

结果

4、当字段类型为string,需要split一下

create table tmp.test_lateral_view_movie_230831_01(class string,name string,score string);insert into tmp.test_lateral_view_movie_230831_01 select 'calss1','A,B,C','61,66,90';
insert into tmp.test_lateral_view_movie_230831_01 select 'calss2','D,E,F,G','56,67,78,76';
insert into tmp.test_lateral_view_movie_230831_01 select 'calss3','X,Y,Z','77,88,99';select * from tmp.test_lateral_view_movie_230831_01;

表中数据:

炸裂:

select class,index_n+1 as id,nn_name,ss_score
from tmp.test_lateral_view_movie_230831_01 
lateral view posexplode(split(name,',')) nn as index_n,nn_name
lateral view posexplode(split(score,',')) ss as index_s,ss_score
where index_n = index_s

结果

相关文章:

posexplode函数实战总结

目录 1、建表和准备数据 2、炸裂实践 3、错误炸裂方式 4、当字段类型为string&#xff0c;需要split一下 对单列array类型的字段进行炸裂时&#xff0c;可以使用lateral view explode。 对多列array类型的字段进行炸裂时&#xff0c;可以使用lateral view posexplode。 1…...

QTday3(对话框、发布软件、事件处理核心机制)

一、Xmind整理&#xff1a; 二、上课笔记整理&#xff1a; 1.消息对话框&#xff08;QMessageBox&#xff09; ①基于属性版本的API QMessageBox::QMessageBox( //有参构造函数名QMessageBox::Icon icon, //图标const Q…...

el-date-picker限制选择的时间范围

<el-date-pickersize"mini"v-model"dateTime"value-format"yyyy-MM-dd HH:mm:ss"type"datetimerange"range-separator"~"start-placeholder"开始日期"end-placeholder"结束日期":picker-options&quo…...

Scala中的Actor模型

Scala中的Actor模型 概念 Actor Model是用来编写并行计算或分布式系统的高层次抽象&#xff08;类似java中的Thread&#xff09;让程序员不必为多线程模式下共享锁而烦恼。Actors将状态和行为封装在一个轻量的进程/线程中&#xff0c;但是不和其他Actors分享状态&#xff0c;…...

Java使用pdfbox将pdf转图片

前言 目前比较主流的两种转pdf的方式&#xff0c;就是pdfbox和icepdf&#xff0c;两种我都尝试了下&#xff0c;icepdf解析出来有时候会出现中文显示不出来&#xff0c;网上的解决方式又特别麻烦&#xff0c;不是安装字体&#xff0c;就是重写底层类&#xff0c;所以我选择了p…...

大规模场景下对Istio的性能优化

简介 当前istio下发xDS使用的是全量下发策略&#xff0c;也就是网格里的所有sidecar(envoy)&#xff0c;内存里都会有整个网格内所有的服务发现数据。这样的结果是&#xff0c;每个sidecar内存都会随着网格规模增长而增长。 Aeraki-mesh aeraki-mesh项目下有一个子项目专门用来…...

数字化新零售平台系统提供商,门店商品信息智慧管理-亿发进销存

传统的批发零售业务模式正面临着市场需求变化的冲击。用户日益注重个性化、便捷性和体验感&#xff0c;新兴的新零售模式迅速崛起&#xff0c;改变了传统的零售格局。如何在保持传统业务的基础上&#xff0c;变革发展&#xff0c;成为了业界亟需解决的问题。 在这一背景下&…...

postgresql-窗口函数

postgresql-窗口函数 简介窗口函数的定义分区选项&#xff08;PARTITION BY&#xff09;排序选项&#xff08;ORDER BY&#xff09;窗口选项&#xff08;frame_clause&#xff09; 聚合窗口函数排名窗口函数演示了 CUME_DIST 和 NTILE 函数 取值窗口函数 简介 常见的聚合函数&…...

Revit SDK 介绍:CreateAirHandler 创建户式风管机

前言 这个例子介绍如何通过 API 创建一个户式风管机族的内容&#xff0c;包含几何和接头。 内容 效果 核心逻辑 必须打开机械设备的族模板创建几何实体来表示风管机创建风机的接头 创建几何实体来表示风管机 例子中创建了多个拉伸&#xff0c;下面仅截取一段代码&#xff…...

微信小程序云开发-云函数发起https请求简易封装函数

一、前言 在日常的开发中&#xff0c;经常会遇到需要请求第三方API的情况&#xff0c;例如请求实名认证接口、IP转换地址接口等等。这些请求放在小程序前端的话&#xff0c;就需要把密钥放在客户端&#xff0c;在安全性上没这么高。 因此&#xff0c;一般是放在云函数端去访问…...

深入探索PHP编程:连接数据库的完整指南

深入探索PHP编程&#xff1a;连接数据库的完整指南 在现代Web开发中&#xff0c;与数据库进行交互是不可或缺的一部分。PHP作为一种强大的服务器端编程语言&#xff0c;提供了丰富的工具来连接和操作各种数据库系统。本篇教程将带您了解如何在PHP中连接数据库&#xff0c;执行…...

【Centos8配置节点免密登陆】

登录Centos8 配置免密登录 为什么需要配置免密登录&#xff0c;玩大数据&#xff0c;玩集群的朋友们&#xff0c;都需要使用RPC通讯&#xff0c;完成集群命令同步&#xff0c;数据操作通讯。要实现RPC通讯&#xff0c;就需要配置节点之间的免密登录。 # 配置登录秘钥 ssh-key…...

不可变集合、Lambda表达式、Stream流

不可变集合、Lambda表达式、Stream流 创建不可变集合 不能被修改的集合 应用场景 如果某个数据不能被修改&#xff0c;把它防御性的拷贝到不可变集合中是个很好的实践。 当集合对象被不可信的库调用时&#xff0c;不可变形式是安全的。 创建不可变集合 在List、Set、Map接口中…...

Three.js GLTF模型加载

在Three.js中&#xff0c;要加载三维模型文件&#xff0c;可以使用GLTF格式。GLTF是一种基于JSON的开放标准&#xff0c;用于3D模型的交换和运行时加载。本篇文章将详细讲解如何使用Three.js加载GLTF模型。 ## 1. 下载GLTF模型 在开始之前&#xff0c;请确保您已经有一个GLTF模…...

外包干了2个月,技术退步明显...

先说一下自己的情况&#xff0c;大专生&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…...

java八股文面试[多线程]——主内存和工作内存的关系

JAVA内存模型&#xff08;JMM&#xff09;共享变量&#xff1a;如果一个变量在多个线程的工作内存中都存在副本&#xff0c;那么这个变量就是这几个线程的共享变量。 上面的工作内存其实是java内存模型抽象出来的概念&#xff0c;下面简要介绍一下java内存模型&#xff08;JMM&…...

技术分享 | LSM,Linux 内核的安全防护盾

计算机安全是一个非常重要的概念和主题&#xff0c;它不仅仅可以保护用户个人信息和资产的安全&#xff0c;还可以影响到用户在使用过程中的体验&#xff1b;但同时&#xff0c;它也是一个很抽象的概念&#xff0c;关于其相关文献和资料不计其数&#xff0c;但它究竟是什么、包…...

http服务(Apache 2.4.57)源码编译及使用

这里安装的是Apache 2.4.57版本 1.下载源码包及编译安装 下载地址 # 下载 wget https://archive.apache.org/dist/httpd/httpd-2.4.57.tar.gz # 如果系统自带httpd这个软件要删除掉,两个软件不能同时运行 rpm -e httpd --nodeps # 安装依赖环境 yum -y install apr apr-dev…...

【1day】H5S视频平台未授权漏洞学习

目录 一、漏洞描述 二、资产测绘 三、漏洞复现 四、漏洞修复 一、漏洞描述 H5S视频平台是一个基于Web技术的视频播放和流媒体管理平台。它提供了一套完整的解决方案,用于在网页上播放和管理视频内容。H5S视频平台存在未授权漏洞,泄露内网rtsp服务集群的服务集群的和H5_…...

企业架构LNMP学习笔记3

服务器基本环境配置&#xff1a; 1、安装虚拟机&#xff0c;centos7.9 操作系统&#xff1b; 2、网络配置&#xff1b; 3、机器名FQDN设置&#xff1b; 4、DNS解析设置&#xff0c;本地hosts设置&#xff1b; 5、配置yum源环境&#xff1b; 6、vim安装配置&#xff1b; …...

如何快速实现无人机合规飞行:基于ESP32的完整远程识别解决方案

如何快速实现无人机合规飞行&#xff1a;基于ESP32的完整远程识别解决方案 【免费下载链接】ArduRemoteID RemoteID support using OpenDroneID 项目地址: https://gitcode.com/gh_mirrors/ar/ArduRemoteID 在FAA和欧盟无人机法规日益严格的背景下&#xff0c;远程识别已…...

避开这些坑,你的蓝桥杯单片机程序也能拿高分:EEPROM存储与电压比较逻辑详解

蓝桥杯单片机高分秘籍&#xff1a;EEPROM存储与电压比较逻辑的深度优化 在蓝桥杯单片机竞赛中&#xff0c;能够完成基本功能只是及格线&#xff0c;真正决定成绩高低的是对细节的掌控和边界条件的处理。许多参赛者在EEPROM数据存储和复杂电压比较逻辑这两个关键环节频频失分&am…...

STM32F427 平替方案全面解析:从性能到成本的最优选择

文章摘要STM32F427 作为意法半导体 (ST) 旗下高性能 Cortex-M4 内核 MCU 的代表产品&#xff0c;凭借其 180MHz 主频、丰富的外设接口和出色的浮点运算能力&#xff0c;长期占据工业控制、医疗设备、智能仪表等中高端嵌入式市场的核心地位。然而近年来&#xff0c;全球芯片供应…...

Perplexity习语查询响应延迟超800ms?3个冷启动配置错误正在 silently 毁掉你的语言生产力

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;Perplexity习语查询功能概览 Perplexity 的习语查询功能专为语言学习者与内容创作者设计&#xff0c;支持对英语中高频、多义、文化负载型习语进行上下文感知的精准解析。该功能不仅返回标准释义&#xff0c;还…...

在树莓派4B上实战:用Electron-builder打包Linux ARM应用(含Wayland配置)

树莓派4B实战&#xff1a;Electron应用打包与Wayland适配全指南 树莓派4B作为一款性价比极高的ARM开发板&#xff0c;已经成为许多开发者和爱好者的首选平台。随着Electron框架的普及&#xff0c;越来越多的开发者希望将自己的桌面应用移植到树莓派上运行。本文将带你从零开始&…...

Beyond Compare 5密钥生成器技术解析与高效配置指南

Beyond Compare 5密钥生成器技术解析与高效配置指南 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen 当Beyond Compare 5的30天评估期结束后&#xff0c;软件会进入受限模式&#xff0c;许多高级…...

ZVM嵌入式实时虚拟机:在ARMv8-A上实现Linux与Zephyr的混合关键性系统

1. 项目概述与核心价值如果你正在从事嵌入式系统开发&#xff0c;尤其是涉及汽车电子、工业控制或5G通信设备这类对实时性和可靠性要求极高的领域&#xff0c;那么你肯定对“既要、又要、还要”的困境深有体会。我们常常需要在同一块硬件上&#xff0c;既要运行一个功能丰富、生…...

AI 写的鸿蒙 ArkTS 代码能跑?我测了 37 个案例,翻车率 60%

先扔结论&#xff1a;如果你现在把 Claude 或 Cursor 当成 ArkTS 专家来用&#xff0c;大概率会掉坑里。我上周闲得慌&#xff0c;跑了 37 个常见开发场景的测试&#xff0c;结果 AI 生成的代码能直接编译通过的&#xff0c;不到四成。剩下的要么语法错误&#xff0c;要么用了废…...

深入解析TRC-20代币:从技术原理到生态布局,一篇文章讲透

深入解析TRC-20代币&#xff1a;从技术原理到生态布局&#xff0c;一篇文章讲透 引言 在波场&#xff08;TRON&#xff09;生态中&#xff0c;TRC-20 代币标准扮演着至关重要的角色&#xff0c;它不仅是承载如USDT等巨量稳定币的基石&#xff0c;更是连接DeFi、GameFi和NFT等…...

HDR 图像的双层结构——元数据生成与 hdrDecompose/hdrCompose 完整解析

文章目录HDR 图到底怎么存的&#xff1f;三个核心操作的关系元数据生成代码详解HDR 分解与合成代码详解HdrMetadataType 四种类型对比像素格式与 HDR 类型对应关系StorageLink 串联四个页面的设计思路踩坑记录写在最后一直以来我以为 HDR 图就是"更亮的图"&#xff0…...