【发布时间】:2021-09-23 16:33:38
【问题描述】:
输入:
number,fruit,colour,join_date,avginqty,avgoutqty,resolution
282,apple,red,today,3 qty,2 qty,640*320
282,apple,red,today,3 qty,,200*200
282,apple,red,today,1 qty,,640*320
282,banana,yellow,yesterday,,,
282,banana,yellow,yesterday,1 qty,,200*200
/283,banana,yellow,yesterday,1 qty,,200*200
输出 Json:
number,fruit,colour,join_date,avginqty,avgoutqty, resolution
282,apple,red,today,2 qty,2 qty, 640*320
282,banana,yellow,yesterday,1 qty,,200*200
我想得到以下内容:
- 获取最常见的分辨率列数据
- 并删除数字列中包含“/”的行
数量:
(payload groupBy (key,index) ->(key.number ++ key.join_date)) mapObject {
a: {
number: $[0].number,
fruit: $[0].fruit,
colour: $[0].colour,
join_date:$[0].join_date,
avginqty: if((sizeOf($.avginqty filter $ != "")) != 0) ($.avginqty sumBy (if($ == "") 0 else $))/(sizeOf($.avginqty filter $ != "")) ++ " qty" else "",
avgoutqty: if((sizeOf($.avgoutqty filter $ != "")) != 0) ($.avgoutqty sumBy (if($ == "") 0 else $))/(sizeOf($.avgoutqty filter $ != "")) ++ " qty" else ""
}
} pluck $
【问题讨论】:
-
“获取最频繁的数据解析列”是什么意思?请澄清标准。目前尚不清楚预期输出如何与此标准匹配。
-
基于数字和水果,例如282和水果苹果有2 of 640*320
-
那么,你想按数字和水果分组,然后计算不同的分辨率,得到计数最大的组吗?您是如何选择 avgoutqty='2 qty' 而不是空的?或者它来自那个组?此外,对于 282-bananas,'' 和 '200*200' 的数量是相同的。你需要选择哪一个?
-
对于数量是 : avginqty: if((sizeOf($.avginqty filter $ != "")) != 0) ($.avginqty sumBy (if($ == "") 0 else $))/(sizeOf($.avginqty filter $ != "")) ++ " qty" else "", avgoutqty: if((sizeOf($.avgoutqty filter $ != "")) != 0) ($.avgoutqty sumBy (if($ == "") 0 else $))/(sizeOf($.avgoutqty filter $ != "")) ++ " qty" else ""