我正在尝试在下面的数据集上进行窗口连接(只是玩它)。
w:(((1%24)%2);0f){"z"$y-x}\:dd.time;
f:`sym`time;
wj[w;f;dd;(dd;(::;`price))];
,这会导致错误:
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
该表上的和meta:
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))]
答案 0 :(得分:1)
Take a look at the list of kdb+ errors
限制 - >试图生成长度超过2,000,000,000的列表,或者序列化对象是>如果尝试序列化具有>的嵌套对象,则输入2GB或' 20亿元素。
这可以解释为什么代码以前工作(较小的数据集?)。
您使用的是哪个版本的q?我建议升级到3 + as the vector size limit was removed in version 3.0。