我正在 Scala 中构建一个用于特征工程的系统,其中最终用户 API 接收对象/事件列表上的聚合。例如,该工具的客户端可能会向其传递一个函数,该函数为特定网络用户提供一组过去的综合浏览量,过滤来自指定国家的浏览量并计算它们。此调用的输出将是一个数字。
它可以被认为是一个非常简单的reduce操作。我正在研究如何为此类系统构建 API。我可以编写一个简单的自定义语言来执行计数和过滤,但我确信这不是最好的方法,尤其是因为它不够表达,除非经过精心设计。
您是否知道诸如表达式语言之类的东西,它可以用来表达简单的功能,而无需我从头开始构建一个?另一种选择是允许最终用户将自定义代码传递给这个库,这在运行时可能很危险。
我知道 apache Calcite 可以将 SQL 插入不同的数据结构和数据库。这是一个不错的选择,但是它迫使我以“列” sql 方式思考,而在这里我正在寻找更多基于行的东西,类似于 map-reduce 编程方式。