当前位置: 首页 > 知识库问答 >
问题:

当 K 表中缺少键时,处理 K 流与 K 表的联接

逄岳
2023-03-14

我最近开始尝试kafka流。我有一个场景,我需要用KTable加入KStream。可能是因为KTable不包含某些键。在这种情况下,我会得到一个NullPointerException

具体来说,我得到了

StreamThread-1在处理过程中流应用程序错误:java.lang.NullPointerException

我不知道我该如何处理这个问题。我无法以某种方式过滤掉与表条目不对应的流记录。

使现代化

进一步查看,我发现我可以通过 ReadOnlyKeyValueStore 接口查询基础存储以查找是否存在密钥。

在这种情况下,我的问题是,这是最好的办法吗?即基于本地存储中是否存在关键字来过滤要加入的流?

在这种情况下,我的第二个问题是,由于我关心在下一阶段利用版本10.2中引入的Global State Store,我是否应该期望我也能够以同样的方式查询Global State Store

更新

之前的更新不准确,因为无法从拓扑内部查询状态存储

最终更新

在更好地理解了连接语义之后,我能够通过简化< code>valueJoiner来解决这个问题,只返回结果,而不是对连接的值执行操作,并在连接之后添加一个额外的过滤步骤来过滤掉空值。

共有1个答案

薛焱
2023-03-14

我的问题的解决方案来自于对< code>join语义的更好理解。

就像在数据库联接中一样(尽管我并不是说Kstream联接完全遵循db联接概念),左联接操作会导致缺少右侧键的行具有空值。

所以最终我唯一要做的就是将我的value eJoiner与后续的计算/操作分离(我需要对连接记录的字段执行一些计算并返回一个新构造的对象),并且让它只返回一个连接值的数组。然后我可以通过检查这些数组来过滤掉导致null值的记录。

根据Matthias的J.Sax建议,我使用了0.10.2版本,而不是0.10.1logic替换为内部联接,这样就不需要过滤出0.05的null值。

 类似资料:
  • 给定一个按严格递增顺序排序的正整数数组arr和一个整数k。 查找此数组中缺少的第k个正整数。 示例1: 输入:arr=[2,3,4,7,11],k=5输出:9说明:缺少的正整数是[1,5,6,8,9,10,12,13,…]。第五个缺失的正整数是9。示例2: 输入:arr=[1,2,3,4], k=2输出:6解释:缺少的正整数是[5,6,7,...]。第二个缺失的正整数是6。 约束条件: 1. 1.

  • K

    K-Means算法的思想很简单,对于给定的样本集,按照样本之间的距离大小,将样本集划分为K个簇。让簇内的点尽量紧密的连在一起,而让簇间的距离尽量的大。 如果用数据表达式表示,假设簇划分为$$(C_1,C_2,...C_k)$$,则我们的目标是最小化平方误差E:$$E = sumlimits_{i=1}ksumlimits_{x in C_i} ||x-mu_i||_22$$ 其中$$mu_i$$是

  • 问题内容: 给定以下声明(取自该 Oracle Java教程),该声明与Collections类的binarySearch()方法有关: 两种形式的返回值都相同。如果列表包含搜索关键字,则返回其索引。如果不是,则返回值为 (-(插入点)-1) ,其中插入点是将值插入到List中的点,或者第一个元素的索引大于该值或list.size。 (),如果List中的所有元素都小于指定的值。 为什么返回值no

  • 问题内容: 我在一个开始从事的项目中遇到了这段代码。原始开发人员不再可用,我对此一无所知: 产生值为。这是如何运作的? 什么是运算符? 什么是运算符? 什么是运算符? 什么是运算符? 问题答案: 什么是运算符? 那是两个运算符,一个是赋值运算符,一个是一元加号,它什么都不做。 您是否输入错了并表示compund赋值运算符? 什么是运算符? 还有两个运算符,一个为后递增,一个为加法(根据最大划分规则

  • k 是一款基于 Electron 的 Redis 图形化客户端。 功能 k 目前支持 string、hash、list 等数据类型。 k 提供一个简易的命令行执行功能,可以执行一些常见的 redis 命令。 redis 订阅发布 提供命令行工具 黑色主题,来自 Arattian/element-theme-dark 背景图片自动切换(点击 logo 即可设置背景图片) 界面 相比常见的客户端程序,

  • K是一个可执行的语义框架,可通过配置、计算和规则来定义编程语言,calculi以及各种表达式分析工具。                      \||||||||||||||||||/                   --- Welcome to Maude ---                     /||||||||||||||||||\            Maude 2.4 b