gpt4 book ai didi

hadoop - Cascalog first-n - 无法连接谓词

转载 作者:可可西里 更新时间:2023-11-01 15:17:44 26 4
gpt4 key购买 nike

我正在处理 following example在来自 cascalog project 的克隆中的 lein repl .我跑过:

(def src [[1] [3] [2]])

(def queryx (<- [?x ?y] (src ?x) (inc ?x :> ?y)))

(?<- (stdout) [?x ?y]
(queryx ?x ?y))
-- works

(?- (stdout) queryx) ;; produces (([1 2] [2 3] [3 4]))
-- works

(?- (stdout) (first-n queryx 1 :sort ["?x"] :reverse true))
--works

但是当我尝试这个时:

(?<- (stdout) [?x ?y] (first-n queryx 1 :sort ["?x"] :reverse true))

我明白了

IllegalArgumentException Unable to join predicates together  jackknife.core/throw-illegal (core.clj:100)

这似乎是查询创建与执行的对比。是否可以创建执行此查询的查询?

最佳答案

根据文档,first-n 返回一个查询,并且查询对象也用作数据源。

以你自己为例:

(?<- (stdout) [?x ?y] (queryx ?x ?y))

您将 ?x 和 ?y 绑定(bind)到查询的输出,因此它有效。

在错误代码中没有绑定(bind) ?x 和 ?y,这就是异常的原因。只需添加绑定(bind)即可。

(?<- (stdout) [?x ?y] ((first-n queryx 1 :sort ["?x"] :reverse true) ?x ?y))

请记住 queryx 定义中的 ?x 和 ?y 仅用于该查询,它们不会自动用于您使用该 queryx 作为数据源的任何地方,因此您需要显式绑定(bind)它们如上所示。

关于hadoop - Cascalog first-n - 无法连接谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16096371/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com