flink table view datastream互转

case class outer(f1:String,f2:Inner)
case class outerV1(f1:String,f2:Inner,f3:Int)
case class Inner(f3:String,f4:Int)
测试代码
package com.yy.table.convertimport org.apache.flink.streaming.api.scala.StreamExecutionEnvironment
import org.apache.flink.table.api._
import org.apache.flink.table.api.bridge.scala._
import org.apache.flink.table.types.DataTypeobject streamPOJO2table {case class outer(f1:String,f2:Inner)case class outerV1(f1:String,f2:Inner,f3:Int)case class Inner(f3:String,f4:Int)def main(args: Array[String]): Unit = {// flink1.13 流处理环境初始化val env = StreamExecutionEnvironment.getExecutionEnvironmentval tEnv = StreamTableEnvironment.create(env)import org.apache.flink.streaming.api.scala._val ds1: DataStream[outer] = env.fromElements(outer("a",Inner("b",2)),outer("d",Inner("e",4)))val table1: Table = tEnv.fromDataStream(ds1)
// table1
// .execute()
// .print()/*+----+--------------------------------+--------------------------------+
| op | f1 | f2 |
+----+--------------------------------+--------------------------------+
| +I | a | (f3=b, f4=2) |
| +I | d | (f3=e, f4=4) |
+----+--------------------------------+--------------------------------+*/// table1
// .print()/*5> +I[d, Inner(e,4)]
4> +I[a, Inner(b,2)]*/tEnv.createTemporaryView("view1", ds1)val tableResult1: TableResult = tEnv.executeSql("select f1,f2,(f2.f4 + 100) as f3 from view1")tableResult1.print()/*+----+--------------------------------+--------------------------------+-------------+
| op | f1 | f2 | f3 |
+----+--------------------------------+--------------------------------+-------------+
| +I | a | (f3=b, f4=2) | 102 |
| +I | d | (f3=e, f4=4) | 104 |
+----+--------------------------------+--------------------------------+-------------+*///val t1: Table = tEnv.sqlQuery("select f1,f2,(f2.f4 + 100) as f3 from view1")
// t1.print()// println(t1.getResolvedSchema)/*
+----+--------------------------------+--------------------------------+-------------+
| op | f1 | f2 | f3 |
+----+--------------------------------+--------------------------------+-------------+
| +I | a | (f3=b, f4=2) | 102 |
| +I | d | (f3=e, f4=4) | 104 |
+----+--------------------------------+--------------------------------+-------------+
2 rows in set
(`f1` STRING,`f2` *com.yy.table.convert.streamPOJO2table$Inner<`f3` STRING, `f4` INT NOT NULL>* NOT NULL,`f3` INT NOT NULL
)*/println("---- 1 -------")// tableResult转datastreamval o1: DataStream[outerV1] = tEnv.toDataStream[outerV1](t1,classOf[outerV1])
// o1.print()println("---- 2 -------")tEnv.executeSql("""|select|f1|,f2.f3|,f2.f4|from view1|""".stripMargin)
// .print()/*+----+--------------------------------+--------------------------------+--------------------------------+
| op | f1 | f3 | f4 |
+----+--------------------------------+--------------------------------+--------------------------------+
| +I | a | b | c |
| +I | d | e | f |
+----+--------------------------------+--------------------------------+--------------------------------+*/tEnv.executeSql("""|select|f1|,(f2.f3,f2.f4)|from view1|""".stripMargin)
// .print()env.execute("jobName1")}}
相关文章:
flink table view datastream互转
case class outer(f1:String,f2:Inner) case class outerV1(f1:String,f2:Inner,f3:Int) case class Inner(f3:String,f4:Int) 测试代码 package com.yy.table.convertimport org.apache.flink.streaming.api.scala.StreamExecutionEnvironment import org.apache.flink.tabl…...
redis重启后数据丢失问题解决(亲测好用)
redis修改密码重启后发现redis中的数据丢失了 解决办法: 首先在redis的安装目录下查找重启之前的dump.rdb文件,发现只有当天的一个dump.rdb文件,确认不是重启备份的文件 然后我就全盘找一下dump.rdb的备份文件,找到前一天的备份…...
敬请期待……
敬请期待…… 《Python百宝箱》 序号文章目录直达链接表白系列1无法拒绝的表白界面https://want595.blog.csdn.net/article/details/1347448942满屏飘字表白代码https://want595.blog.csdn.net/article/details/1350373883无限弹窗表白代码...
3.10 Android eBPF HelloWorld调试(四)
一,读取eBPF map的android应用程序示例 1.1 C++源码及源码解读 /system/memory/bpfmapparsed/hello_world_map_parser.cpp //基于aosp android12#define LOG_TAG "BPF_MAP_PARSER"#include <log/log.h> #include <stdlib.h> #include <unistd.h&g…...
PyTorch常用工具(1)数据处理
文章目录 前言1 数据处理1.1 Dataset1.2 DataLoader 前言 在训练神经网络的过程中需要用到很多的工具,最重要的是数据处理、可视化和GPU加速。本章主要介绍PyTorch在这些方面常用的工具模块,合理使用这些工具可以极大地提高编程效率。 由于内容较多&am…...
docker-简单说说cgroup
前面我们简单说了下namespace, 现在我们来接着简单说说cgroup。通过docker-简单说说namespace文章我们知道: namespace 是为了隔离进程组之间的资源,那cgroup就是为了对进程组的监控和限制资源。Cgroup 可以限制进程组使用的资源数量和分配&a…...
印象笔记04: 如何将印象笔记超级会员价值最大化利用?
印象笔记04: 如何将印象笔记超级会员价值最大化利用? 为什么有这个问题 我不知道有没有人一开始接触印象笔记觉得非常好。奈何只能两个设备同步,局限太多。而会员活动比较优惠——就开了会员。而且我开了十年……。只能开发一下看看怎么最大…...
我的JDK动态代理流程
我的JDK动态代理流程 我梳理的动态代理流程大约是: 如果每一个框架都有自己的BPP,且自己的BPP中都有自己的wrapIfNecessory,那样可能就是一个BPP一个代理类。但通常应该都是各自的框架以提供 Advisior(切面)的方式&am…...
uniapp Vue3 面包屑导航 带动态样式
上干货 <template><view class"bei"><view class"container"><view class"indicator"></view><!-- 遍历路由列表 --><view v-for"(item, index) in routes" :key"index" :class&quo…...
openGauss学习笔记-174 openGauss 数据库运维-备份与恢复-导入数据-管理并发写入操作
文章目录 openGauss学习笔记-174 openGauss 数据库运维-备份与恢复-导入数据-管理并发写入操作174.1 事务隔离说明174.2 写入和读写操作174.3 并发写入事务的潜在死锁情况 openGauss学习笔记-174 openGauss 数据库运维-备份与恢复-导入数据-管理并发写入操作 174.1 事务隔离说…...
数据分析可被划分为4个重要的类别
1、描述型:发生了什么? 全面、准确、实时的数据有效的可视化 2、诊断型:为什么会发生? 能够深入了解问题的根本原因隔离所有混淆信息的能力 3、预测型:可能发生什么? 通过历史数据来预测特定的结果通过…...
爆火小游戏敲木鱼流量主小程序源码系统+完整的代码包以及安装搭建教程
随着移动互联网的快速发展,小程序已成为一种新的应用形态,深入到人们生活的方方面面。其中,小游戏由于其简单、有趣的特点,吸引了大量用户,也成为了许多开发者的首选。敲木鱼小游戏,以其独特的玩法和轻松的…...
Invoke和BeginInvoke的区别
Invoke和BeginInvoke的区别 本文导读:BeginInvoke() 调用时,当前线程会启用线程池中的某个线程来执行此方法,当前线程不被阻塞,继续运行后面的代码, Invoke() 调用时,会阻塞当前线程,等到 Invo…...
3 分钟为英语学习神器 Anki 部署一个专属同步服务器
Anki 介绍 Anki 是一款基于间隔重复(Spaced Repetition)原理的学习软件,想象一下,你的大脑就像是一个需要定期维护的精密仪器。间隔重复就好比是一种精准的维护计划,它通过在最佳时刻复习信息,来确保知识在…...
<HarmonyOS第一课>应用程序框架
【习题】应用程序框架 目录 判断题 单选题 多选题 判断题 1. 一个应用只能有一个UIAbility。错误 正确(True)错误(False) 2. 创建的Empty Ability模板工程,初始会生成一个UIAbility文件。正确 正确(True)错误(False) 3. 每调用一次router.pushUrl()方法&…...
SQL 解析 — 如何轻松实现新增语句
KaiwuDB 支持多种不同类型的 SQL 语句,例如 create、insert 等。本文将介绍在 KaiwuDB SQL Parser(下文统称解析器)中添加新语句的过程及其实现。我们将了解如何使用 goyacc 工具更新解析器,以及执行器和查询计划器(pl…...
Android集成OpenSSL实现加解密-集成
导入so 将编译生成的 OpenSSL 动态库文件(.so 文件)复制到你的 Android 项目的 libs 目录中 导入头文件 将编译生成的include文件夹导入到项目中 build.gradle添加配置 defaultConfig {……testInstrumentationRunner "androidx.test.runner…...
代码随想录算法训练营Day18|513.找树左下角的值、112. 路径总和、113. 路径总和ii、106.从中序与后序遍历序列构造二叉树
目录 513.找树左下角的值 前言 层序遍历 递归法 112. 路径总和 前言 递归法 113. 路径总和ii 前言 递归法 106.从中序与后序遍历序列构造二叉树 前言 思路 递归法 总结 513.找树左下角的值 题目链接 文章链接 前言 本题要求得到二叉树最后一行最左边的值…...
【蓝桥备赛】技能升级——二分查找
题目链接 技能升级 个人思路 需要给n个技能添加技能点,无论技能点加成如何衰减,每次始终都是选择当前技能加点加成最高的那一项技能,所以最后一次的加点一定也是加在当时技能攻击加成最高的那个。此时,我们去寻找最后一次的加点…...
zyqn-arm软中断设置
所有SGI都是边缘触发的,sgi的灵敏度类型是固定的,不能改变。 软中断初始化流程 1、初始化异常处理 2、初始化中断控制器 3、注册异常处理回调函数到CPU 4、连接软中断信号与注册软中断回调函数 5、使能中断控制器中的软中断中断 6、使能异常处理 …...
Day | 11 【苍穹外卖统计业务的实现:含详细思路分析】
🔥个人主页:北极的代码(欢迎来访) 🎬作者简介:java后端学习者 ❄️个人专栏:苍穹外卖日记,SSM框架深入,JavaWeb ✨命运的结局尽可永在,不屈的挑战却不可须臾或…...
一键体验OpenClaw:星图平台百川2-13B-4bits镜像快速部署方案
一键体验OpenClaw:星图平台百川2-13B-4bits镜像快速部署方案 1. 为什么选择星图平台体验OpenClaw 作为一个长期关注AI自动化工具的技术爱好者,我第一次接触OpenClaw时就被它的理念吸引了——一个能在本地电脑上像人类一样操作各种软件的AI助手。但当我…...
【RK3588 NPU性能调优实战】多线程异步推理YOLOv5,榨干6TOPS算力
1. 为什么你的RK3588 NPU跑不满6TOPS? 第一次在RK3588上跑YOLOv5时,我也被官方宣称的6TOPS算力唬住了。直到亲眼看到npu-smi显示的实际利用率——好家伙,不到30%!这就像买了辆跑车却只能挂一档开。经过两周的折腾,终于…...
Harmonyos应用实例214:空间角与距离计算器
6. 空间角与距离计算器 功能简介:利用空间向量计算异面直线所成角、直线与平面所成角、二面角,以及点到平面的距离。通过输入向量坐标,实时计算并展示结果,帮助学生掌握空间角与距离的向量计算方法。 ArkTS代码: @Entry @Component struct SpaceVectorCalculator {@Stat…...
Win10 LTSC 1809系统下Docker 4.0.0与CVAT 2.31.0的完美搭配:避坑指南与性能优化
Win10 LTSC 1809系统下Docker 4.0.0与CVAT 2.31.0的完美搭配:避坑指南与性能优化 在工业级计算机视觉标注领域,CVAT(Computer Vision Annotation Tool)凭借其开源特性和强大的标注功能,已成为许多研究团队的首选工具。…...
用74LS175D和面包板,手把手教你做一个四人抢答器(附完整电路图)
从零搭建四人抢答器:74LS175D芯片实战指南 在电子技术学习过程中,没有什么比亲手搭建一个实际可用的电路更能加深理解了。今天,我们将使用经典的74LS175D芯片,配合面包板、LED和按键开关,一步步构建一个功能完整的四人…...
OpenClaw技能扩展:基于nanobot开发自定义自动化模块
OpenClaw技能扩展:基于nanobot开发自定义自动化模块 1. 为什么选择nanobot作为技能开发基础 当我第一次尝试为OpenClaw开发自定义技能时,面对庞大的框架和复杂的依赖关系感到无从下手。直到发现nanobot这个轻量级解决方案,才真正找到了适合…...
Kook Zimage真实幻想Turbo快速调试:找到属于你的幻想风格黄金参数组合
Kook Zimage真实幻想Turbo快速调试:找到属于你的幻想风格黄金参数组合 1. 认识Kook Zimage真实幻想Turbo Kook Zimage真实幻想Turbo是一款专为个人GPU设计的轻量化幻想风格图像生成系统。它基于Z-Image-Turbo极速文生图底座,通过独特的权重融合技术&am…...
dbg-macro配置完全指南:禁用宏、强制颜色输出与警告控制
dbg-macro配置完全指南:禁用宏、强制颜色输出与警告控制 【免费下载链接】dbg-macro A dbg(…) macro for C 项目地址: https://gitcode.com/gh_mirrors/db/dbg-macro dbg-macro是一款轻量级C调试宏工具,通过简单的dbg(...)语法即可实现变量值、类…...
OpenClaw本地模型成本对比:nanobot镜像vs商业API实测
OpenClaw本地模型成本对比:nanobot镜像vs商业API实测 1. 为什么需要关注OpenClaw的模型成本 上周我在尝试用OpenClaw自动化处理200份PDF文档时,意外发现账单上出现了三位数的API费用。这个数字让我意识到——当OpenClaw需要频繁调用大模型进行决策时&a…...
