如何有效地将kdb / q中具有不同列的表列表合并到一个表中

问题描述

我知道我能做

raze table_list

但这需要表列表中的每个表都具有相同的列。

对于我的用例,如果所有表中都不存在该列,则我可以接受添加具有空值的列。在这种情况下,我可以这样做

(uj) over table_list

但是这行代码非常慢。没有任何地方像狂暴一样快。

即使所有表都不具有相同的列,是否存在合并所有表的有效方法

解决方法

要反驳我在上面的评论(并重复我在google网上论坛上写的内容):

使用一致的表,您将永远无法获得像raze一样快的速度,但是使用全局追加(如果您可以接受创建全局)可以改善uj over:

/conforming tabs
n:1000000;
tabs:{flip`col1`col2`col3`col4`col5`col6!(n?100i;n?100j;n?.z.D;n?10f;n?.z.P;n?5h)}each til 10

q)\ts raze tabs
82 570426736

/non-conforming tabs
nctabs:{flip(6?`4)!(n?100i;n?100j;n?.z.D;n?10f;n?.z.P;n?5h)}each til 10

q)\ts a:(uj/)nctabs
5560 11729374832

/global append
q)\ts {t::(uj/)0#'x;{t,:x}each x}nctabs
3146 356520224

q)a~t
1b

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...