是否有数据驱动方式来指定如何将数据拆分为分组?

时间:2016-07-01 15:09:03

标签: clojure specter

鉴于许多event基准都是:

{:a "a"
 :b [{:a "a2" :c "c2"} {:a "a3" :c "c3"}]
 :c "ignore"}

我想按用户指定的维度集计算所有分组。

如果我希望维度为:a以及内部:a:c值,则此数据包含以下分组:

[["a" "a2" "c2"]
 ["a" "a3" "a3"]]

请注意:b包含一个序列,而该序列又需要被解构,因此定期的Clojure解构不足以得到结果。

(let [{:keys [a b]} the-data]
  (for [{a2 :a, c2 :c} b]
    [a a2 c2]))

在这种情况下产生所需的输出。

是否有数据驱动方式来表达这一点?某种查询?幽灵?或者一些数据结构可以通常翻译为let / for?

例如,表示它的一种方法可能是伪解构:

{a :a
 [:a :c] :b}

并有一些自定义代码来解释它。这将允许安全用户输入维度以生成分组。

简而言之,指定这样一个"分组"的好方法是什么?用数据查询?

0 个答案:

没有答案