0

私はうまくデータを選択できる拡張テーブルを持っています。

メタ データを表示しようとすると、`symエラーが発生します。これが起こる理由を誰かが提案できますか?

 q)meta tablename
 k){$[(20h>t)|77h<t:@x;`;98h>@. t:!x;`;t]}
 'sym
 .:
 `sym
 q.Q))
4

2 に答える 2

2

列挙ベクトルはセッションにロードされません。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

ではごきげんよう!

于 2014-10-02T15:27:06.187 に答える
1

列挙された 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

于 2014-10-02T16:46:49.027 に答える