0

我有一种情况,编写 PL/pgSQL 函数解决方案既慢又麻烦,而且可能不可能,因为我需要许多 python 模块。这就是为什么我想选择 VAEX 或 DASK。

计划:将 SQL 表转储到文件中,然后应用 func。

伪代码:

def olap(ary,tbl_field):
  return set(ary) & set(tbl_field)

然后对于 FILE 循环中的每一行并找到最高的重叠。

伪代码:

for row in FILE:
   max_olap = select olap(row.fieldX::int[], F.fieldX::int[]) as score
              from FILE as F
              order by score desc limit 1
   res.append(row.id, max_olap)

save2SQLTable(res) #or file first

#or better yet insert during the loop, unless it breaks parallization

即循环内循环。

我说的是约 100 万行。

olap()功能仅用于说明。真正的乐趣要复杂得多,但仍然接受两个数组作为参数。

哪种工具更适合这种情况?

如何将 SQL 表转储到 numpy|panda|?什么格式适合可变数组字段?

我想使用并行化功能?

完成后,我必须将结果导入 SQL 表。

过程任何部分的任何示例。

到目前为止我发现了什么:

  • DASK 似乎有一些 func sql_to_table()。这有点令人困惑。看来我必须先在内存中创建 DF 然后保存到文件。

  • 有点难以理解 .apply() 用户函数是如何工作的,似乎两个工具都支持它

4

0 回答 0