KDB窗口连接限制错误
我正在尝试对下面的数据集进行窗口连接(只是玩弄它) 这将导致一个错误:KDB窗口连接限制错误,kdb,Kdb,我正在尝试对下面的数据集进行窗口连接(只是玩弄它) 这将导致一个错误: k){[e;d;a;b]e@'d@\:a+!b-a} 'limit !: 205558234298187785 dd表: sym time price B1VVGZ5 2015-07-30T12:47:57.000 240.9 0216238 2015-07-30T08:16:22.383 5.19 0216238 2015-07-30T08:18:36.000 5.195 0
k){[e;d;a;b]e@'d@\:a+!b-a}
'limit
!:
205558234298187785
dd表:
sym time price
B1VVGZ5 2015-07-30T12:47:57.000 240.9
0216238 2015-07-30T08:16:22.383 5.19
0216238 2015-07-30T08:18:36.000 5.195
0216238 2015-07-30T08:18:36.217 5.195
0216238 2015-07-30T08:22:13.527 5.2
0216238 2015-07-30T08:22:13.730 5.2
0216238 2015-07-30T08:26:34.437 5.2025
0216238 2015-07-30T08:29:00.920 5.2
0216238 2015-07-30T08:29:01.113 5.2
0216238 2015-07-30T08:29:01.113 5.2
在那张桌子上:
c t f a
sym s
time z
price f
另一个奇怪的是,这个代码工作了,然后又不工作了。有什么想法吗
编辑:复制此错误的确切方式:
dd:select [10] sym:symbol,time:"z"$FILL_DATE,price:FILL_PRICE from update symbol:`$Sedol from select from fillData where date=2015.07.30;
w:(((1%24)%2);0f){"z"$y-x}\:dd.time
f:`sym`time
wj[w;f;dd;(dd;(max;`price))]
limit->试图生成长度超过2000000000的列表,或者序列化对象大于2GB,或者如果试图序列化包含>20亿个元素的嵌套对象,则键入
这可以解释为什么代码以前工作(较小的数据集?)
您使用的是哪个版本的q?我建议升级到3+ 这是同一张桌子…那张桌子只有10行。我不知道为什么它试图生成一个超过2mm行的列表。嗯。。。你能再检查一遍你的密码吗?我复制了上面的精确表,代码对我来说运行良好。在版本2.8和3.1上测试。当我升级到版本3.3时,它工作正常。也许是早期版本中的一个bug?我似乎在v3.1中仍然会遇到这个错误,但在v3.3Strange中却没有。。。它适用于我测试的所有版本。您介意发布您运行的确切命令吗?包括创建表的位置?
dd:select [10] sym:symbol,time:"z"$FILL_DATE,price:FILL_PRICE from update symbol:`$Sedol from select from fillData where date=2015.07.30;
w:(((1%24)%2);0f){"z"$y-x}\:dd.time
f:`sym`time
wj[w;f;dd;(dd;(max;`price))]