apache-kafka - 将 KStream 的 2 列组合为 KSQLDB 中的映射或数组
问题描述
我有一个流如下
CREATE STREAM sample AS
SELECT
p1.grade,
p1.val,
p2.parameters
FROM Parent1 p1
JOIN Parent2 p2
ON
p1.rule = p2.rule;
我怎样才能结合p1.val
和p2.parameter
其他下一个流可能会像[{ "val" : p1.val, "params": p2.parameters}]
?或者上述流本身是否可能?请指导。提前致谢。
解决方案
听起来您正在尝试构建包含单个结构的数组或映射。您可以使用数组、结构和映射构造函数来做到这一点:
-- create an array:
ARRAY[1,2,3]
-- create a map:
MAP('key1':= 10, 'key2':= 20)
-- create a struct:
STRUCT('field1':= 10, 'field2':= 'bob')
因此,要获得您的输出,[{ "val" : p1.val, "params": p2.parameters}]
您可以尝试:
CREATE STREAM sample AS
SELECT
ARRAY[STRUCT(
'val' := p1.val,
'params' := p2.parameters
)] AS COL0
FROM Parent1 p1
JOIN Parent2 p2
ON
p1.rule = p2.rule;
或者作为地图输出,(需要所有类型匹配):
CREATE STREAM sample AS
SELECT
MAP(
'val' := p1.val,
'params' := p2.parameters
) AS COL0
FROM Parent1 p1
JOIN Parent2 p2
ON
p1.rule = p2.rule;
或者作为结构输出:
CREATE STREAM sample AS
SELECT
STRUCT(
'val' := p1.val,
'params' := p2.parameters
) AS COL0
FROM Parent1 p1
JOIN Parent2 p2
ON
p1.rule = p2.rule;
注意:这些构造函数是在一个或三个版本之前引入的。如果您遇到编译器错误,您可能需要升级到更高的 ksqlDB 版本。
推荐阅读
- python - TypeError:列表索引必须是整数或切片,而不是 str - Python 代码错误
- python - 遍历数组的最佳实现是什么?
- java - 直接在 IntelliJ IDEA 中运行时,Spring Webflow 在 Spring Boot 应用程序中找不到资源文件夹
- python - 在python中使用numba自引用类似结构的对象
- html - 将 fontawsome 图标移动到表格的底部边框
- electron - 赛普拉斯 + 无头电子:CoreText 警告
- firebase - 是否可以在 Google Analytics 中连接数据源?
- java - Jetty 服务器为 REST 调用抛出空闲超时
- python-3.x - FastAPI 引发缺少位置参数错误
- c# - dotnet restore 无法从 dockerfile 内部工作