我正在为机器学习模型进行原型设计,以便为对象生成“排序数据”。对象存储在mysql db中,可通过SQLAlchemy抽象层访问。现在我想通过从第二台服务器(ML运行的地方)拉出的数据对这些数据进行过滤和排序。
到目前为止,我已经设法通过将从ML服务器中提取的id添加到IN Filter语句来过滤数据:
.filter(Job.id.in_(list(sum(ai_match, ()))))
而ai_match是从ML服务器中提取的id的元组。这工作正常,但我想在ML服务器中按similarity
对列表进行排序。从SQL的角度来看,这只是两个数据库的内部联接:
`SELECT * FROM jobs
INNER JOIN mlserver.matches ON mlserver.matches.job_id = jobs.id`
然而,ML服务器不是SQL Alchemy对象,我不想创建一个(因为项目相当庞大且非常复杂,我无法深入到整个项目结构中)。
这引出了我的问题:
如何将数据“注入”到现有的SQL Alchemy对象中,以便在字典上实现所需的JOIN格式为[(job_id, similarity),]
感谢您的帮助!
答案 0 :(得分:1)
如果您无法创建SQLAlchemy对象,最简单的选项可能是在查询后使用存储在dict中的相似性信息对结果进行排序:
class Foo(object):
def __init__(self, lots_of_stuff):
lotsofthingsbeingdone()
class Bar(Foo):
def core_functionality(self, something):
val = does_something_important(something)
return val