我有几个JSON对象通过一个QueryRecord处理器.我想从中提取一些属性,包括一些可选的.问题是 Select 一个可选属性会导致一个错误,指出该列在表中不存在.

我try 了一个使用100的解决方案,看起来像这样:

SELECT is_answered,
       view_count,
       answer_count,
       score,
       last_activity_date,
       creation_date,
       question_id,
       title,
       CASE
         WHEN HAS_PATH(flowfile, '/last_edit_date') THEN
          RPATH(flowfile, '/last_edit_date')
         ELSE
          NULL
       END AS last_edit_date
  FROM flowfile

在这种情况下,100是一个可选属性.但是,这会抛出一个错误,即101列不存在.我试图找到另一种解决方法,它不会在select语句中包含101,但是我找不到任何东西.对于如何解决这个问题有什么 idea 吗

推荐答案

QueryRecord的SQL部分使用FlowFile的内容,因此HAS_PATH在记录中查找该字段,而不是属性.相反,使用表达式语言(可能是isEmpty()函数)来生成查询的该部分,可能如下所示:

SELECT is_answered, 
  view_count, 
  answer_count, 
  score, 
  last_activity_date, 
  creation_date, 
  question_id, 
  title,
  CAST("${last_edit_date:isEmpty():ifElse(null,${last_edit_date})}" AS DATE) AS last_edit_date
FROM FLOWFILE

我没有对此进行测试,但它应该会让您大致了解如何使用表达式语言获取属性并将值注入到查询中.

Json相关问答推荐

基于两个条件替换扁平化的SON中的值

Vega图表计数聚合如果数据值为空数组则不显示任何内容,如何解决此问题?

与错误相关的未定义&Quot;不是有效的JSON

NIFI-我需要数组的信息,但只需要第一个信息

正向闪烁后的微调值

如何修复通过在 tsconfig.json 文件中添加allowImportingTsExtensions引发的错误 TS5023?

Jolt 变换 - 如何用字段值重命名字段?

Powershell v7 文本背景突出显示

转义 Haskell 记录的字段

如何在循环中传递列表(会话(字符串属性))以在 Gatling Scala 中创建批量 Json 请求

如何在 powerapps 中将详细信息表单转换为 json?

使用 jq 同时迭代数组

hook到 Decodable.init() 以获得未指定的键?

杰克逊 2.0 和 Spring 3.1

JSON.NET 中特定对象的自定义转换

在 JSON.stringify() 的输出中隐藏空值

ASP.NET MVC 读取原始 JSON 发布数据

在 HTML 数据属性上添加 JSON 是不是很糟糕?

获取一个数字的 PHP 对象属性

XML vs YAML vs JSON