问题标签 [q-lang]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
kdb - 使用变量将 db 路径传递给 \l 或 .Ql
我正在编写将数据库加载到特定路径并对其进行一些处理的 aq 脚本。db 的位置当前在脚本中是硬编码的,但我想将 db 路径作为参数传递并让它从变量中的路径加载。
目前它看起来像这样:
我发现 .Ql 应该让我们使用变量来执行此操作,所以我尝试在脚本中使用以下内容,
当使用参数 /path/to/dbDir 运行时,脚本总是会失败并出现一些不可读的内容,并且:
有人可以帮忙吗?
kdb - 在 q 中分配时如何进行更改
例如,我知道:
将返回一个按 中的值按升序排序的表c1
,但这不会更改表本身。所以我想知道是否存在除
可以将更改应用于表。
kdb - Q/kdb+ 分块读取日志文件
我有一项任务需要我加载对我的内存来说太大而无法立即加载的日志文件。因此我需要通过不同的块加载文件的方法..
我知道:
从文件中加载第一个 n 块,但是如何加载其余的块?
谢谢!
kdb - 调用 string() 时的输出差异
我想将多个具有不同类型的变量连接成一个字符串。这很好用:
当我用括号调用字符串时,输出是不同的:
我认为在第一个示例中,函数字符串是使用时间类型的原子参数调用的,而在第二个调用中,时间列表是在调用字符串之前创建的。
第二个示例中的输出表示什么?
bigdata - Q/kdb+ 读取大文本文件
我需要读取一个包含交易数据的大文件(大约 20G),我想知道是否有一种很好的方法可以在不杀死内存的情况下读取文件。
我当前的方法是按列加载文件并将这些列连接在一起:
这种方法的问题是,虽然速度很快,但它使用了大量的内存,我想提高它的内存使用率。
我也试过用.Q.fs,但是加载文件需要3个多小时...
有没有办法在不消耗大量内存的情况下有效地做到这一点?
谢谢
database - 如何改善 kdb 中的选择时间
我在本地机器上创建了一个贸易数据库,按日期分区。
大约需要 100 毫秒,但是当我这样做时:
大约需要 1-3 秒。
有没有我错过的技巧(使用`g#sym
给出错误'par
)。
kdb - 独立调用或在 q 中的查询内调用时函数行为的差异
我在 q 中发现了一个奇怪的问题,我想这是一个可能的错误。我已经定义了一个简单的函数,它返回一个浮点数,给定一个日期作为输入:
如果单独调用,它可以正常工作:
不过,如果我尝试在查询中调用它,我会收到错误消息:
如果我将函数简化为只返回输入日期(身份函数),它就可以在查询中使用。如果我将函数简化为只返回一个浮点数,而不比较日期,它就可以在查询中使用。当我在 if 语句中使用输入日期进行比较时,就会出现问题: $[ the_date > 2013.01.01 ; 0.001; 0.002]
如果我重新定义将浮点数而不是日期作为输入的函数,也会发生同样的情况,然后我尝试在查询中将价格作为输入:
你知道为什么会这样吗?我什么都试过了。谢谢马可
database - (kdb+/Q 语言)从 CSV 导入解析器创建单独的表文件(已编辑)
我有一个包含一些数据的(大)CSV 文件。我有一个进口商code.kx.com
使用.Q.fsn
此代码创建一个以newCreatedFile
来自 的数据命名的文件data.csv
,假设是一个大数据文件,以 5000000 字节的块处理数据。
问题:
我想从这些数据中创建 2 个单独的文件,假设区分的基础是“条件”列中的值。对于每一行,如果 Condition 列中的值为 x、y 或 z,则放入文件 A.csv,否则为 B.csv。
这是 if 语句的伪代码:
我将如何设置 if 语句?我目前有:
但我得到一个类型错误。如何匹配某个列的每个值?
它应该在导入原始数据文件时检查还是在数据文件创建到表中之后检查kdb
?
kdb - 合并展开表的 sym 文件
我有两个目录,每个目录都包含一个日期分区的展开表。正如预期的那样,每个目录都有自己的 sym 文件。这些表完全相同。
我想将其合并到一个目录中,但这样做时遇到问题。最初我尝试在另一个目录中创建分区的软链接(由于大量数据)。这不起作用,因为表使用了错误的 sym 文件。
有谁知道如何最好地做到这一点?我是否必须为两个目录重新生成一个新的 sym 文件?
谢谢
kdb - (kdb+/q) 是否可以加入或合并行?
这是我的情况: 我目前有一个看起来像这样的数据表:
如您所知,这些行是成对出现的。每个 BestAsk 和 BestBid 行具有相同的符号日期时间和序列。由于它们都很好地排序,我认为可以根据它们的顺序组合行,但我查看的所有连接命令只组合列(aj、aj0 等)。我尝试将表格翻转成字典,然后以字典形式组合,但没有成功。
我在结果中寻找的是相同的值 Symbol Date Time Sequence 不必重复,但在 Type 列中,显示 BestAsk 和 BestBid :
像这样的,谢谢!