大数据开发之Hive案例篇8-解析XML
文章目录
- 一. 问题描述
- 二. 解决方案
- 2.1 官方文档
- 2.2 XML格式不规范
一. 问题描述
今天接到一个新需求,hive表里面有个字段存储的是XML类型数据
数据格式:
<a><b>bb</b><c>cc</c>
</a>
二. 解决方案
2.1 官方文档
遇到不懂的问题,首先上官方文档查询相关文档,然后照着官网的demo改改,一般就能解决问题了
官方文档地址:
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+XPathUDF
丰富的XML相关函数及测试用例
代码:
-- 求路径 a/b下面的值
SELECT xpath_string ('<a><b>bb</b><c>cc</c></a>', 'a/b') LIMIT 1 ;
测试记录:
hive> > SELECT xpath_string ('<a><b>bb</b><c>cc</c></a>', 'a/b') LIMIT 1 ;
OK
bb
Time taken: 1.477 seconds, Fetched: 1 row(s)
hive>
2.2 XML格式不规范
因为Hive不支持XML数据格式,后端写入数据库存的是一个String类型,此时格式就没那么规范了,会有一些特殊字符
解析xml报错,原来是有特殊字符
https://stackoverflow.com/questions/730133/what-are-invalid-characters-in-xml
xml不符合规范的字符
https://blog.csdn.net/u014589856/article/details/107151252

通过正则表达式删除特殊字符:
- 下面几个是常用的特殊字符
@&$#%
regexp_replace(the_gifts,'[@&$#%]','')
- 只保留 大小写字母 数字 及中文 以及 xml标签
regexp_replace(the_gifts,'(^[a-z]+|[A-Z]+|[0-9]+|[\\u4E00-\\u9FA5]+[</>])','')
相关文章:
大数据开发之Hive案例篇8-解析XML
文章目录 一. 问题描述二. 解决方案2.1 官方文档2.2 XML格式不规范 一. 问题描述 今天接到一个新需求,hive表里面有个字段存储的是XML类型数据 数据格式: <a><b>bb</b><c>cc</c> </a>二. 解决方案 2.1 官方文档 遇到不懂的…...
Sentinel降级规则
1.降级规则简介 官方文档 熔断降级概述 除了流量控制以外,对调用链路中不稳定的资源进行熔断降级也是保障高可用的重要措施之一。一个服务常常会调用别的模块,可能是另外的一个远程服务、数据库,或者第三方 API 等。例如,支付的…...
基于非靶向和靶向代谢组学分析婴幼儿血管瘤的氨基酸代谢
文章标题:Integrated nontargeted and targeted metabolomics analyses amino acids metabolism in infantile hemangioma 发表期刊:Frontiers in Oncology 影响因子:5.738 作者单位:四川大学华西医院 百趣提供服务…...
程序员困局:去大城市进大厂却买不了房,回老家又没有高薪工作…
对于在外打拼的程序员来说,难的是进大厂,而不是买不起房。 进大厂的程序员,能不能买得起房? 进大厂的程序员的薪资,还是相当可观的。以阿里P6为例,年薪50万,到手40万左右,刨去10万…...
数字化转型下企业 IT 发展趋势-大企业自主研发,中小企业上云
在当今数字化转型的时代,企业IT发展面临着许多挑战和机遇。对于大中小型企业而言,数字化转型已成为实现竞争优势和业务增长的关键因素之一。在这个过程中,大企业和中小企业采取了不同的策略来推动其IT发展,其中大企业更加注重自主…...
【Go语言从入门到实战】面向对象编程篇
面向对象编程 Go语言的面向对象编程和其他语言有非常大的差别。 Go 是一种面向对象的语言吗? 是和不是。虽然 Go 有类型和方法,并允许面向对象的编程风格,但没有类型层次结构(继承)。Go 中的“接口”概念提供了一种不…...
代码随想录算法训练营第四十五天 | 力扣 70. 爬楼梯(进阶), 322. 零钱兑换, 279.完全平方数
70. 爬楼梯(进阶) 题目 70. 爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 改为:一步一个台阶,两个台阶,三个台阶ÿ…...
dvwa靶场通关(三)
第三关:CSRF(跨站请求伪造) csrf跨站请求伪造:是一种对网站的恶意利用。尽管听起来像跨站脚本,但它与xss非常不同,xss利用站点内受信任用户,而csrf则通过伪造来自受信任用户的请求来利用受信任…...
【计算机图形学】理论考核回顾
写在前面: 1:题型主要是单选题多选题判断题计算题,题目量居多,一定要合理安排时间。 2:小题由于太琐碎了,遂不回顾,大致都是课件上做过的小题,嗯。 3:后续有时间更新期…...
一文了解国内外电子后视镜(CMS)现行法规标准
摘要: 本文小编分享一篇整合了国内外对CMS的安装及功能性做出要求的相关标准与法规。感兴趣的朋友可以专门去搜索学习。 前言:随着GB15084-2022的即将正式实施,以摄像头屏幕组合取代传统光学后视镜的新一代电子后视镜CMS相关车型将被允许上路…...
LabVIEWCompactRIO 开发指南36 确定“Clock Ticks”或模拟时间
LabVIEWCompactRIO 开发指南36 确定“Clock Ticks”或模拟时间 桌面执行节点可以控制模拟时间,因此开发人员可以使用模拟I/O在开发计算机上执行期间更改关键点的激励。要成功使用此功能,需要测量FPGA VI完成所需的时间,或者需要以直观地知道…...
ESP32 :项目的创建及项目架构解析
一、项目的创建 方式一:基于IDF示例创建 在ESP-IDF中有example示例库,以其中的一个示例为模板创建项目。 1、打开示例库 查看 - 命令面板(也可以按住CtrlShiftP 或 F1) 输入 show examples projects 2…...
TI EDI 项目数据库方案开源介绍
TI EDI 工作流简介 TI EDI到SQL Server示例流具有预配置的端口,用于从TI的EDI集成规范转换以下交易集: 850 采购订单,企业 -> TI855 采购订单确认,TI -> 企业860 采购订单变更,企业 -> TI865 采购订单变更确认,TI -> 企业856 发货通知,TI …...
报表控件FastReport使用指南——使用NuGet包创建PDF文档
FastReport 是功能齐全的报表控件,可以帮助开发者可以快速并高效地为.NET,VCL,COM,ActiveX应用程序添加报表支持,由于其独特的编程原则,现在已经成为了Delphi平台最优秀的报表控件,支持将编程开…...
策略模式-类型统计
文章目录 前言一、策略模式是什么?二、策略模式应用场景三、策略模式优点四、策略模式缺点五、场景案例:类型统计1.项目结构2.UML图解3.代码实现3.1 指标枚举3.2 请求体3.3 响应体3.4.分析统计指标策略3.5.接口3.6.扩展接口3.7.接口实现3.8.控制层 六、P…...
android 12.0app应用安装白名单
1.概述 在12.0定制化开发中,客户需求要实现应用安装白名单功能,在白名单之中的应用可以安装,其他的app不准安装,实现一个 控制app安装的功能,这需要从app安装流程入手就可以实现功能 PMS就是负责管理app安装的,功能就添加在这里就可以了, 2.app应用安装白名单核心代码 …...
android 12.0Launcher3禁止拖动图标到Hotseat
1.概述 在12.0系统Launcher3进行定制化开发中,对于hotseat的开发中,由功能需求要求禁止拖动图标到Hotseat的功能,而拖拽也是在workspace.java中处理的 接下来就从workspace.java 开始找解决的办法 2.Launcher3禁止拖动图标到Hotseat相关代码分析 packages/apps/Launcher3…...
Java阶段三Day03
Java阶段三Day03 文章目录 Java阶段三Day03JavaScript语言JavaScript概述什么是JavaScript语言特点一门编程语言包括哪些内容 语言基础变量JavaScript常用数据类型运算符各种语句如何在HTML页面中引入JavaScript代码方法和页面相关的方法 BOM和DOM什么是BOMwindow对象location对…...
【STM32G431RBTx】备战蓝桥杯嵌入式→决赛试题→第七届
文章目录 前言一、题目二、模块初始化三、代码实现interrupt.h:interrupt.h:main.h:main.h: 四、完成效果五、总结 前言 无 一、题目 二、模块初始化 1.LCD这里不用配置,直接使用提供的资源包就行 2.ADC:开启ADCsingle-ended 3.LED:开启PC8-15,PD2输出模式就行了…...
Java日期时间调整的几种方式
一、Calendar类 我们现在已经能够格式化并创建一个日期对象了,但是我们如何才能设置和获取日期数据的特定部分呢,比如说小时,日,或者分钟? 我们又如何在日期的这些部分加上或者减去值呢? 答案是使用Calendar 类。 Calendar类的…...
二、Socket 编程 TCP
Socket 编程 TCP 一、TCP 编程整体认识 TCP 是面向连接的可靠传输协议。和 UDP 不同,UDP 可以直接 sendto/recvfrom 收发数据,而 TCP 通信之前必须先建立连接。 TCP 服务端基本流程: socket() -> bind() -> listen() -> accept(…...
遥感因果分析:多尺度表征拼接技术解析与工程实践
1. 项目概述:从“看”到“理解”的遥感因果分析新思路在遥感图像分析领域,我们早已不满足于仅仅“看到”地物。从土地利用分类到灾害评估,核心目标正从“是什么”转向“为什么”和“会怎样”。比如,我们不仅想知道某片区域是农田&…...
【Claude项目管理黄金配置】:经17个千万级项目验证的6类角色Prompt模板,限时开放3套企业版权限
更多请点击: https://intelliparadigm.com 第一章:Claude项目管理黄金配置的核心原理 Claude项目管理的黄金配置并非源于参数堆砌,而是建立在**语义对齐、上下文节制与任务契约化**三大核心原理之上。其本质是将大语言模型从“通用应答器”重…...
同事还在手动整理文件,我已经让 Open Claw 全自动搞定了|Windows 一键部署
⚡OpenClaw 一键安装包|一键部署,告别复杂环境配置⚡ 适配系统 Windows10/11 64 位 当前版本 2.7.5 版本(虾壳云版) 核心优势 全程可视化操作,无需命令行、无需手动配置 Python/Node.js,内置所有运行…...
Android HTTPS抓包全解:从Charles配置到证书固定绕过
1. 为什么你手机App的HTTPS请求总像黑箱?——从“看不到”到“全透明”的真实起点你有没有过这种经历:在测试一个安卓App时,明明界面上显示加载失败,但Logcat里翻来覆去全是D/OkHttp: <-- HTTP FAILED: java.net.SocketTimeout…...
Python之enc-dotenv包语法、参数和实际应用案例
Python enc-dotenv 包完整详解 enc-dotenv 是加密版 python-dotenv 核心增强包,专门解决明文存储环境变量(密钥、密码、Token) 的安全风险。它能将 .env 文件加密存储,运行时自动解密加载,彻底避免敏感配置明文泄露。 …...
Triton+KServe构建高可用ML模型服务的七道关卡
1. 项目概述:这不是一次“部署”,而是一场从实验室到产线的系统性迁移“From Notebook to Production: Running ML in the Real World (Part 4)”——这个标题里藏着太多被轻描淡写却重若千钧的词。“Notebook”不是指纸质本子,而是Jupyter里…...
用Delphi 7打造动物农场小游戏:一场编程与数据结构的趣味之旅
文章来自:用Delphi 7打造动物农场小游戏:一场编程与数据结构的趣味之旅 当经典的Pascal语言遇上可爱的动物农场,会擦出怎样的火花? 前言 还记得第一次接触编程时的兴奋吗?当你敲下第一行代码,看到"He…...
Lindy流程冷启动死亡陷阱(97%新手踩中的第3个环节):实时检测+自动回滚机制详解
更多请点击: https://kaifayun.com 第一章:Lindy流程冷启动死亡陷阱的底层认知 Lindy效应在软件工程中并非仅适用于“越老越可靠”的技术寿命预测,它更深层地揭示了一种反直觉的系统演化规律:一个尚未被时间验证的流程࿰…...
OBS直播教程:OBS多路推流在哪里设置?如何安装?OBS多路推流教程
OBS直播教程:OBS多路推流在哪里设置?如何安装?OBS多路推流教程 具体如何下载?如何安装?如何使用?我写了一个保姆级教程,请往下看,步骤很详细的,你一定看得懂 第一步&…...
