我正在查找检查Druid转换表达式中的“in”子句。
我想检查并派生一个满足以下条件的字段:
severity_analysis_period IN ('Critical')
THEN '>4hr Deviation' ,
when severity_analysis_period IN ('High', 'Medium', 'Low')
THEN '<4hr Deviation' else 'No Deviation'.我像这样编写了转换规范,但它不起作用:
"transformSpec": {
"transforms": [
{
"type": "expression",
"name": "deviation",
"expression": "if(\"severity_analysis_period\"='Critical'),'>4hr Deviation',if(\"severity_analysis_period\" in ('High','Medium','Low'),'<4hr Deviation','No Deviation'))"
},
{
"type": "expression",
"name": "deviation_day",
"expression": "if((\"severity_day\"='Critical'),'>4hr Deviation',if(\"severity_day in\" ('High','Medium','Low'),'<4hr Deviation','No Deviation'))"
},
{
"type": "expression",
"name": "deviation_hour",
"expression": "if((\"severity_day_hour\"='Critical'),'>4hr Deviation',if(\"severity_day_hour\" in ('High','Medium','Low'),'<4hr Deviation','No Deviation'))"
}
],
}发布于 2021-01-21 21:52:04
您可以尝试使用case语句:
{
"type": "expression",
"name": "deviation_hour",
"expression": 'case_simple("severity_analysis_period", "Critical", ">4hr Deviation", "High", "<4hr Deviation", "Medium", "<4hr Deviation", "Low", "<4hr Deviation", "No Deviation")'
}case_simple函数的工作方式如下:
case_simple(expr, value1, result1, [[value2, result2, ...], else-result])另请参阅:https://druid.apache.org/docs/latest/misc/math-expr.html
https://stackoverflow.com/questions/65787011
复制相似问题