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

flink1.17 json_tuple udf 实现

使用效果

思路: flink1.17要求复杂类型必须通过hint指定每个字段类型, 只有固定个数,都是基础类型的flink才能自动推断.  这就导致json_tuple返回不定长参数无法搞定.

所以这里通过返回字符串数组来解决. 同时带来新的问题: 数组元素类型一样,导致fastjson2解析到的int也需要转换为string才能输出,类型丢失.  

如果借助官方文档[定制类型推导](自定义函数 | Apache Flink) 目前发现不定长跑不通,定长可以跑通.  所有成功代码和测试代码都在下面.

sql client:add jar '/Users/thomas990p/IdeaProjects/FlinkLocalDemo/target/FlinkLocalDemo-1.0-SNAPSHOT.jar';create temporary function json_tuple as 'com.yy.udf.JsonTuple';SET 'sql-client.execution.result-mode' = 'tableau';select json_tuple('{"k1":"v1","k2":{"k11":"v11","k22":200}}', array['$.k1', '$.k2.k22'] );Flink SQL>   select arr[1] as k1,arr[2] as v1 f

相关文章:

flink1.17 json_tuple udf 实现

使用效果 思路: flink1.17要求复杂类型必须通过hint指定每个字段类型, 只有固定个数,都是基础类型的flink才能自动推断. 这就导致json_tuple返回不定长参数无法搞定. 所以这里通过返回字符串数组来解决. 同时带来新的问题: 数组元素类型一样,导致fastjson2解析到的int也需要…...

Vue3实现6位验证码输入框,用户可以连续输入和删除

实现代码 可以随意填写删除 <template><div class"verification-container"><inputv-for"(code, index) in verificationCodes":key"index"v-model"verificationCodes[index]"input"handleInput(index, $event…...

如何在终端设置代理(设置jupyter notebook同理)

设置代理 在终端(我用的gitbash)下执行 set HTTP_PROXYhttp://<user>:<password><proxy server>:<proxy port> set HTTPS_PROXYhttp://<user>:<password><proxy server>:<proxy port>其中&#xff1a; user、password&#…...

git报错:Error merging: refusing to merge unrelated histories

碰对了情人&#xff0c;相思一辈子。 打命令&#xff1a;git pull origin master --allow-unrelated-histories 然后等一会 再push 切记不要有冲突的代码 需要改掉~...

QT-QLabel显示图片,按QLabel控件的大小自动缩放

要按照 QLabel 控件的大小调整并显示图片&#xff0c;你可以使用 scaled() 函数将 QPixmap 对象进行缩放&#xff0c;然后将缩放后的图片设置到 QLabel 上。下面是一个示例代码&#xff1a; #include <QApplication> #include <QLabel> #include <QPixmap>i…...

【JS代码调试技巧】你必须知道的Javascript技巧汇总

注&#xff1a;最后有面试挑战&#xff0c;看看自己掌握了吗 文章目录 使用控制台检查变量值控制台使用 type of 检查变量的类型捕获拼错的变量名和函数名捕获使用赋值运算符而不是相等运算符捕捉函数调用后缺少的左括号和右括号 &#x1f338;I could be bounded in a nutshel…...

JAVA-@Configuration注解属性proxyBeanMethods

Configuration注释中的proxyBeanMethods参数是springboot1.0&#xff0c;升级到springboot2.0之后新增的比较重要的内容&#xff0c;该参数是用来代理bean的。 理论 首先引出两个概念&#xff1a;Full 全模式&#xff0c;Lite 轻量级模式 Full(proxyBeanMethods true) :pro…...

锁策略, cas 和 synchronized 优化过程总结

目录 一、锁策略 1. 乐观锁和悲观锁 2. 读写锁 3. 重量级锁和轻量级锁 4. 自旋锁 5. 公平锁和非公平锁 6.可重入锁 vs 不可重入锁 二、CAS 1. CAS 是怎么实现的 1) 实现原子类 2) 实现自旋锁 3. CAS 的 ABA 问题 三、Synchronized 原理 1.Synchronized 加锁工作过程 3.1 偏向…...

正点原子HAL库入门1~GPIO

探索者F407ZGT6(V3) 理论基础 IO端口基本结构 F4/F7/H7系列的IO端口 F1在输出模式&#xff0c;禁止使用内部上下拉 F4/F7/H7在输出模式&#xff0c;可以使用内部上下拉不同系列IO翻转速度不同 F1系列的IO端口 施密特触发器&#xff1a;将非标准方波&#xff0c;整形为方波 当…...

华为VRP 系统基础配置

1.flash 相当于电脑的 硬盘 2.NVRAM 拿来专门存放系统配置文件 3.RAM 运行内存 4.ROM 系统引导 1.修改系统名[Huawei]sysname SWL1 2.配置登入信息 [SWL1]header shell information "Welocom to the learning" [SWL1]q <SWL1>q User interface con0 …...

面试热题(打家窃舍)

一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响小偷偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报警。 给定一个代表每个房屋存放金额的非负…...

【Deepsort】C++版本Deepsort编译(依赖opencv,eigen3)

目录 下载源码安装onnxruntime安装Eigen3编译opencv 下载源码 https://github.com/shaoshengsong/DeepSORT安装onnxruntime 安装方法参考博客 安装Eigen3 当谈及线性代数计算库时&#xff0c;Eigen3是一个强大而受欢迎的选择。Eigen3是一个C模板库&#xff0c;提供了许多用…...

Synchronized锁升级过程

无锁状态&#xff08;无锁&#xff09;&#xff1a;当一个线程访问一个没有被锁定的Synchronized代码块时&#xff0c;处于无锁状态。此时&#xff0c;线程可以直接进入临界区执行代码&#xff0c;不需要进行任何锁协调。 偏向锁状态&#xff08;偏向锁&#xff09;&#xff1…...

汽车电子功能安全

功能安全考虑 分析方法&#xff1a;FMEA&#xff0c;DFMEA&#xff08;设计潜在失效模式和影响分析&#xff09; 严重度&#xff08;Severity&#xff09;&#xff0c;暴露率&#xff08;Exposure&#xff09;&#xff0c;可控性&#xff08;Controllability&#xff09;评估…...

ARM进阶:内存屏障(DMB/DSB/ISB)的20个使用例子详解

在上一节内存屏障指令之DMB、DSB和ISB详解中&#xff0c;介绍了一下内存屏障的三个指令的作用并举了一些例子&#xff0c;对于内存屏障指令的使用时机&#xff0c;与处理器架构(比如Cortex-M和Cortex-A)和处理器的系统实现(同样的架构&#xff0c;有不同的实现&#xff0c;如ST…...

Cpp学习——模板

模板&#xff1f; 目录 模板&#xff1f; 1.介绍 2.函数模板的使用 3.函数模板的强制转换or显式调用 四,模板的分类 1.介绍 在Cpp3.0中&#xff0c;祖师爷便引入了模板的概念。这是一个重大的变革&#xff0c;为后来的Cpp标准化打下了铺垫。也正是因为有了模板&#xff0…...

HTTP 协议 版本详解

HTTP 协议 介绍<一> 简介 HTTP&#xff08;Hypertext Transfer Protocol&#xff09;是一种用于在客户端和服务器之间进行通信的协议。它是现代互联网中最常用的应用层协议之一。HTTP 的主要目的是实现超文本资源的传输&#xff0c;例如 HTML 文档、图像和音频文件等。…...

PHP语言基础知识(超详细)

文章目录 前言第一章 PHP语言学习介绍 1.1 PHP部署安装环境1.2 PHP代码工具选择 第二章 PHP代码基本语法 2.1 PHP函数知识介绍2.2 PHP常量变量介绍 2.2.1 PHP变量知识&#xff1a;2.2.2 PHP常量知识&#xff1a; 2.3 PHP注释信息介绍2.4 PHP数据类型介绍 2.4.1 整形数据类型2.4…...

Flex弹性盒子的项目属性

最近在写项目时用到了弹性盒子的项目属性&#xff0c;记录一下&#xff0c;以后用到继续扩充 <div class"concern-data"><div><img src"https://meituan.thexxdd.cn/lvyou/assets/pinglun-fc62482a.svg" alt""><span>1&…...

广州银行信用卡中心:强化数字引擎安全,实现业务稳步增长

广州银行信用卡中心是全国城商行中仅有的两家信用卡专营机构之一&#xff0c;拥有从金融产品研发至销售及后期风险控制、客户服务完整业务链条&#xff0c;曾获“2016年度最佳创新信用卡银行”。 数字引擎驱动业务增长 安全左移降低开发风险 近年来&#xff0c;广州银行信用卡…...

CosyVoice语音大模型快速部署:开箱即用,5分钟搭建个人语音合成系统

CosyVoice语音大模型快速部署&#xff1a;开箱即用&#xff0c;5分钟搭建个人语音合成系统 1. 为什么选择CosyVoice语音大模型 语音合成技术正在改变我们与数字世界的交互方式。CosyVoice作为阿里巴巴通义实验室研发的多语言语音生成模型&#xff0c;以其出色的自然度和易用性…...

TTD与阳狮纠纷,是AI广告革命下的一个切面

文/刀客doc(头条精选作者)01前段时间&#xff0c;海外广告圈最受关注的一场争议&#xff0c;发生在美国阳狮和程序化广告平台 The Trade Desk&#xff08;简称 TTD&#xff09;之间。大概的经过是这样的&#xff0c;3 月中旬的时候&#xff0c;《广告时代》披露&#xff0c;美国…...

Java核心技术 卷1 基础知识 原书第10版--中文版扫描--带书签已OCR.pdf分享

Java核心技术 卷1 基础知识 原书第10版–中文版扫描–带书签已OCR 下载链接 百度网盘下载 链接:https://pan.baidu.com/s/17CJ-96c9XCcry0yZbaqxrg?pwdnu8v 提取码:nu8v 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦 资源介绍 文件名: Java核心技术 卷1 基…...

C++的std--ranges算法并行执

C的std::ranges算法并行执行&#xff1a;现代C的高效之道 随着现代计算机多核处理器的普及&#xff0c;并行计算已成为提升程序性能的关键手段。C20引入的std::ranges库不仅简化了范围操作&#xff0c;还通过与执行策略结合&#xff0c;为开发者提供了高效的并行计算能力。本文…...

别再只调参了!用波士顿房价数据实战,教你读懂岭回归和Lasso的系数变化与特征选择

波士顿房价预测实战&#xff1a;从岭回归到Lasso的系数解密与特征工程艺术 当我们面对包含13个特征的波士顿房价数据集时&#xff0c;传统的线性回归往往会给出看似完美的系数解。但你是否注意到&#xff0c;这些系数在实际应用中可能极度不稳定&#xff1f;这正是正则化技术大…...

UEFI固件分析工具:深度解析与定制指南

UEFI固件分析工具&#xff1a;深度解析与定制指南 【免费下载链接】UEFITOOL28 项目地址: https://gitcode.com/gh_mirrors/ue/UEFITOOL28 UEFI固件&#xff08;统一可扩展固件接口&#xff0c;用于初始化硬件的底层软件&#xff09;分析是系统安全与硬件定制的关键环节…...

Chatbox:重新定义AI交互体验的全能客户端

Chatbox&#xff1a;重新定义AI交互体验的全能客户端 【免费下载链接】chatbox Powerful AI Client 项目地址: https://gitcode.com/GitHub_Trending/ch/chatbox 一、认知层&#xff1a;探索Chatbox的核心价值与技术优势 在AI应用快速发展的今天&#xff0c;选择合适的…...

C++ 引入第三方库(三):使用 CMake 导入

使用 CMake 导入库其实应该称为&#xff1a;使用 CMake 将第三方库安装到 CMake 的 install 目录下。解释一下&#xff1a;首先&#xff0c;CMake 有着与 Maven 类似的 install 机制&#xff0c;通过 cmake --install 命令可以将本地项目安装到 CMAKE_INSTALL_PREFIX 目录下&am…...

告别Flask和Django!用FastAPI + Pydantic 5分钟搞定带自动验证的用户注册API

5分钟用FastAPIPydantic构建带智能验证的用户注册系统 还在为Flask中冗长的数据验证逻辑头疼&#xff1f;或是被Django表单的复杂性困扰&#xff1f;现代Python开发早已进化到"声明即验证"的新范式。今天我们将彻底告别手动编写if username and len(password)>8的…...

实战:用C语言为嵌入式Linux设备(如NVIDIA Jetson)编写蓝牙SPP数据透传服务

实战&#xff1a;用C语言为嵌入式Linux设备&#xff08;如NVIDIA Jetson&#xff09;编写蓝牙SPP数据透传服务 在工业物联网和智能硬件开发中&#xff0c;蓝牙串口协议&#xff08;SPP&#xff09;因其低功耗、稳定可靠的特点&#xff0c;成为设备间无线通信的首选方案之一。想…...