私はうまくデータを選択できる拡張テーブルを持っています。
メタ データを表示しようとすると、`sym
エラーが発生します。これが起こる理由を誰かが提案できますか?
q)meta tablename
k){$[(20h>t)|77h<t:@x;`;98h>@. t:!x;`;t]}
'sym
.:
`sym
q.Q))
列挙ベクトルはセッションにロードされません。hdb パーティション内で起動 q をレプリケートするには - 展開されたテーブルはすべて有効ですが、sym がロードされていないため、メタは失敗します。
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
ではごきげんよう!
列挙された sym ファイルが見つからないため、エラーが発生しています。通常、Q インタープリターは、表示されたディレクトリの 1 つ上のディレクトリを調べます。
例: 次のような保存コマンドを指定した場合:
q) t:([]sym:`a`b;id:1 2)
q) `:/home/test/t/ set .Q.en[`:test] t
展開されたテーブル「t」の/home/test内にディレクトリ「t」を作成し、ディレクトリ/home/testに列挙された「sym」ファイルを作成します。
このテーブルをロードするには:
q)\l /home/test
他には、次のように列挙された「sym」ファイルを手動でロードすることもできます。
q)sym:get `:path to sym file
メモリ内のすべてのテーブルは、この新しいリストに自動的にマップされます。
参照: http://code.kx.com/q4m3/14_Introduction_to_Kdb+/#1422-splayed-tables-with-symbol-columns