首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据联合“联接”操作符是否要求表在共享的次要属性上具有相同的值?

数据联合“联接”操作符是否要求表在共享的次要属性上具有相同的值?
EN

Stack Overflow用户
提问于 2022-01-10 02:53:03
回答 1查看 51关注 0票数 1

我是洛伦·弗兰克在加州大学洛杉矶分校实验室的研究员。当对依赖于两个上游表的计算数据连接表调用填充时,这些表的条目对于共享的主属性具有相同的值,但对于共享的次要属性("analysis_file_name")具有不同的值,因此我得到以下错误:

代码语言:javascript
复制
~/anaconda3/envs/nwb_datajoint/lib/python3.8/site-packages/datajoint/condition.py in assert_join_compatibility(expr1, expr2)
     63     if not isinstance(expr1, U) and not isinstance(expr2, U):  # dj.U is always compatible
     64         try:
---> 65             raise DataJointError(
     66                 "Cannot join query expressions on dependent attribute `%s`" % next(
     67                     r for r in set(expr1.heading.secondary_attributes).intersection(

DataJointError: Cannot join query expressions on dependent attribute `analysis_file_name`

为了说明为什么会出现这种情况,我们的实验室目前有一个工作流程,其中存储数据的所有数据连接表都具有次要属性"analysis_file_name",该属性包含存储数据的分析文件的名称。因此,跨两个表的条目可以在主属性上共享值,但次要属性"analysis_file_name“的值不同。当“连接”两个这样的表时,例如在自动接收依赖于这些表的第三个表时,似乎会出现上述错误。数据联合的人能否澄清是否要连接两个表(例如,在自动接收依赖于这些表的第三个表时),必须在共享主属性上具有相同值的条目在共享次要属性上也具有相同的值?谢谢你对此作出任何澄清。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-10 03:07:26

这确实是一个bug,我在这里注册了它:第980期

我们正在研究解决方案PR981

问题是,key_source在加入之前并没有投影出次要属性。

同时,解决方法是覆盖key_source属性,突出其中一个表中的次要属性。例如,如果双亲是AB,那么您需要定义该方法:

代码语言:javascript
复制
@property
def key_source(self):
    return A.proj() * B
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70647295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档