请问Flink中是否可以在 json_query 函数的 path 中使用变量,例如 select json_query( col_a, col_b) from table_a?报错 Caused by: org.apache.flink.table.planner.codegen.CodeGenException: Unsupported call: JSON_QUERY(STRING, STRING, SYMBOL NOT NULL, SYMBOL NOT NULL, SYMBOL NOT NULL) If you think this function should be supported, you can create an issue and start a discussion for it. 但是 就可以执行 select json_query( col_a, ‘$’) from table_a path 使用固定的串,sql-client 执行 sql
请问Flink中是否可以在 json_query 函数的 path 中使用变量,例如 select?[阿里云实时计算 Flink版]
「点点赞赏,手留余香」
还没有人赞赏,快来当第一个赞赏的人吧!
根据您提供的错误信息,当前版本的 Flink 不支持在
json_query
函数的路径中使用变量。这也是导致出现错误的原因。目前 Flink 中的表达式和函数的参数只支持常量值或列引用作为输入,不支持直接在函数调用中传递变量。所以,您在 JSON_QUERY 函数的路径中使用变量是不被支持的。
如果您确实需要动态构建 JSON 查询路径,一种解决方法是通过编写自定义函数来实现此功能。您可以在自定义函数中接收变量作为参数,并根据变量动态构建 JSON 查询路径。然后,在 Flink 作业中使用这个自定义函数来执行 JSON 查询操作。
下面是一个示例,展示了如何创建一个自定义函数来动态构建 JSON 查询路径:
在将自定义函数注册到 Flink 表环境后,您可以在 SQL 查询中使用它:
请注意,此示例仅演示了一种通用的思路,具体实现可能需要根据您的需求进行调整。
开源的部分建议到社区问问https://qr.dingtalk.com/page/yunpan?route=previewDentry&spaceId=1781248759&fileId=95856306982&type=file,此回答整理自钉群“实时计算Flink产品交流群”