我有一张张开的表格,我可以从中选择数据。
当我尝试查看元数据时,出现`sym
错误。任何人都可以提出可能发生这种情况的原因吗?
q)meta tablename
k){$[(20h>t)|77h<t:@x;`;98h>@. t:!x;`;t]}
'sym
.:
`sym
q.Q))
答案 0 :(得分:2)
枚举向量未加载到会话中。要在hdb分区内复制启动q - splayed表都是有效的,但由于没有加载sym,meta将失败。
glen@aquaq:~>q hdb1/
q)2#trades
sym time src price size
------------------------------------------------
3 2014.04.22D08:00:00.937000000 10 25.02 5167
3 2014.04.22D08:00:04.567000000 9 25.05 3376
q)meta trades
k){$[(20h>t)|77h<t:@x;`;98h>@. t:!x;`;t]}
'sym
.:
`sym
q.Q))\\
q)sym:get`:../sym
q)meta trades
c | t f a
-----| -----
sym | s p
time | p
src | s
price| f
size | i
一切顺利!
答案 1 :(得分:1)
您收到错误,因为缺少枚举的sym文件。通常,Q解释器将其查看到splayed目录上的一个目录中。
例如:如果您提供这样的保存命令:
q) t:([]sym:`a`b;id:1 2)
q) `:/home/test/t/ set .Q.en[`:test] t
它将创建目录&#39; t&#39;在/ home / test for splayed table&#39; t&#39;并创建枚举的&#39; sym&#39;文件目录/ home / test。
要加载此表:
q)\l /home/test
其他的事情是,您还可以加载枚举的&#39; sym&#39;文件手动像这样:
q)sym:get `:path to sym file
内存中的所有表格将自动映射到此新列表。
参考: http://code.kx.com/q4m3/14_Introduction_to_Kdb+/#1422-splayed-tables-with-symbol-columns