需要解释一下保存分区表的kdb/q脚本

2023-12-30

我试图从以下位置理解这段代码:

https://code.kx.com/q/kb/loading-from-large-files/

自己定制它(例如按小时、分钟、滴答数等分区):

$ cat fs.q
\d .Q

/ extension of .Q.dpft to separate table name & data
/  and allow append or overwrite
/  pass table data in t, table name in n, : or , in g
k)dpfgnt:{[d;p;f;g;n;t]if[~&/qm'r:+en[d]t;'`unmappable];
 {[d;g;t;i;x]@[d;x;g;t[x]i]}[d:par[d;p;n];g;r;<r f]'!r;
 @[;f;`p#]@[d;`.d;:;f,r@&~f=r:!r];n}

/ generalization of .Q.dpfnt to auto-partition and save a multi-partition table
/  pass table data in t, table name in n, name of column to partition on in c
k)dcfgnt:{[d;c;f;g;n;t]*p dpfgnt[d;;f;g;n]'?[t;;0b;()]',:'(=;c;)'p:?[;();();c]?[t;();1b;(,c)!,c]}

\d .

r:flip`date`open`high`low`close`volume`sym!("DFFFFIS";",")0:
w:.Q.dcfgnt[`:db;`date;`sym;,;`stats]
.Q.fs[w r@]`:file.csv

但我找不到任何资源来给我详细解释。例如:

if[~&/qm'r:+en[d]t;'`unmappable];

它对参数有什么作用d?


(将其提升为答案,因为我相信这有助于回答问题)。

从注释链开始:为了将 k 代码翻译成 q 代码(或者只是为了理解 k 代码),您有几个选项,但没有一个有特别详细的文档记录,因为它违背了 q 语言的目的 -是掩盖 k 语言的包装器。

选项 1 是检查 .q 命名空间中的内置函数

q).q
          | ::
neg       | -:
not       | ~:
null      | ^:
string    | $:
reciprocal| %:
floor     | _:
...

选项 2 是检查创建上述命名空间的 q.k 脚本(注意不要编辑/更改它):

vi $QHOME/q.k

例如,选项 3 是在 code.kx 网站上查找一些重要的文档https://code.kx.com/q/wp/parse-trees/#k4-q-and-qk https://code.kx.com/q/wp/parse-trees/#k4-q-and-qk and https://code.kx.com/q/basics/exposed-infrastruct/#unary-forms https://code.kx.com/q/basics/exposed-infrastructure/#unary-forms

选项 4 是通过 google 搜索 k 的其他/类似版本的参考资料,例如 k2/k3。它们往往是相似的。

最后要注意的一点是,在大多数示例中,您将在基元后面看到一个冒号 (:)...q/kdb 中需要此冒号才能使用基元的单子形式(大多数都严重过载),而在 k 中,不需要显式强制使用一元形式。这就是为什么where将显示为&:在 q 参考中,但通常只是&在实际的k代码中

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

需要解释一下保存分区表的kdb/q脚本 的相关文章

  • 如何向 Python REST 请求添加基本身份验证?

    我有以下简单的 Python 代码 可以向 REST 服务发出简单的发布请求 params param1 param1 param2 param2 param3 param3 xmlResults urllib urlopen MY APP
  • Java 中的私有成员真的更“安全”吗?

    学习 Java 有时我被教导使用private访问修饰符以免将 敏感信息 暴露给其 他类 就好像这可能会打开合法的安全漏洞一样 但我从未遇到过这样的情况 限制成员可见性不仅仅是为了以面向对象的方式对程序进行建模的便利 Are private
  • git status 显示 fatal: bad object HEAD

    我在 Windows Azure 上使用 git 时遇到问题 Git 状态显示 致命 坏对象 HEAD 我尝试运行 git fsck full git gc But git fsck shows broken link from commi

随机推荐

  • 如果用户关闭浏览器窗口或离开 php 页面,如何销毁会话?

    我有一些已保存的会话 如果用户关闭浏览器窗口或单个选项卡或离开页面 我想销毁所有会话 我有什么办法可以做到这一点吗 如今 所有现代选项卡式浏览器都变得相当复杂 因此 您只能依赖会话超时 不过没什么大不了的 你确定你真的需要这个吗 这会给用户
  • 如何在一个屏幕上隐藏反应导航标题

    我需要隐藏我尝试过的应用程序的登陆页面上的导航栏 const Stack createStackNavigator Landing screen LandingScreen headerMode none navigationOptions
  • 编译器将 printf 更改为 put

    考虑以下代码 include
  • 在一台计算机上,进程外运行的 C# ServicedComponent 出现文件未找到异常

    我编写了一个愚蠢简单的 ServicedComponent COM 组件 来在进程外运行并在 x64 服务器上包装仅 x86 的 COM 组件 在我的测试虚拟机 Server 2008 R2 上它运行良好 在生产盒上 我收到文件未找到异常
  • 如何为 Material-ui TextField 设置默认日期 Type=date

    我刚刚开始使用 React 我正在尝试使用该材料的日期选择器 它看起来像这样
  • WXPython 与 MatPlotLib

    我正在尝试将 MatPlotLib 与 WXPython 一起使用 我找到了一个很好的例子http www cs colorado edu kena classes 5448 s11 presentations pearse pdf htt
  • 当前在 C# 中跟踪程序流程的可能性?

    我用过波斯特锐普 http www sharpcrafters com 几年前到跟踪程序流程执行期间无需手动添加trace语句到方法 是否还有其他新方法可以跟踪执行以以类似的方式调试输出 最好是一种不需要对构建的组件进行检测的方法 也许不可
  • 如何使用eclipse在android中使用jzy3d?

    你好 我想在 android 中创建一个 3dplot 图表 我想使用 jzy3d lib 并找到了这个示例作为开始 import org jzy3d chart Chart import org jzy3d colors Color im
  • 如何拦截和修改任何对象的特定属性

    对于任何未知数量的对象 我想要拦截并更改某些属性 如果需要 我尝试过 getter 和 setter 但我只能实现接近我想要的目标 并且只能针对已知的对象 以下是我想要实现的目标的示例 在我的范围 闭包之外创建的对象 正如您所看到的 这些是
  • 重定向前的时间延迟

    我为我的网络应用程序创建一个注册页面 该应用要求用户成功注册新帐户后 页面会显示 注册成功 的消息 然后等待5秒才切换到登录页面 我用了Thread Sleep 5000 它等待 5 秒 但不显示消息 谁能帮我 void AccountSe
  • 基于另一个更新的列更新列

    我的问题与单个更新语句中的更新顺序有关 我观察到 当我使用 a 设置变量时SELECT声明 变量是按顺序设置的 例如 SELECT Test1 2 Test2 Test1 1 在此刻 Test1将2 and Test2将3因为集合操作是按顺
  • std::pair<> 的默认构造函数是否将基本类型(int 等)设置为零?

    写完后 std pair
  • Android 浏览器应用程序对 URL 的最大长度有限制吗?

    有谁知道 Android 浏览器在 GET URL 中接受的字符数是否有最大限制 我假设任何限制都会转化为其他基于 WebKit 的浏览器 例如 iPhone 等 但如果有人有不同的了解 对此进行澄清也很好 None
  • Webpack 在编译 TypeScript 代码失败时导致 gulp watch 崩溃

    我正在运行一个 gulp watch 任务 它正在编译我的前端应用程序 当我遇到打字稿错误时 只是因为我太早点击保存 整个过程崩溃 我必须手动重新启动它 我希望 webpack 和 typescript 编译器只报告错误 只要它们在监视模式
  • 是否可以在 BigQuery 中将外部表转换为本机表?

    我已经从 Google Cloud Storage 创建了一个表 文件路径以 gs 开头 即使尝试多次后 我也无法将其创建为本机 我只有在将表选项设置为本机后才成功 后来我就可以成功查询到这个表了 但是 我需要执行以下操作 向表中添加一列
  • s3可容纳的最大连接数

    我正在学习亚马逊网络服务 我只是想知道 Amazon S3 在不崩溃的情况下可以同时保持的最大连接数 大约 是多少 理论上这是无限的 为了实现这一目标 他们使用了他们在此处解释的分区方案 http docs aws amazon com A
  • Xcode 无法读取当前工作目录中项目特定的 .lldbinit

    我想设置项目特定的 lldbinit 文件 以便 所有内容 都处于版本控制之下 并且可以在新计算机中轻松设置 然而似乎我只能读取 lldbinit 文件而不是任何 git project lldbinit 文件 LLDB手册说 lldb 将
  • Twitter4j。通过#hashtag进行查询和过滤帖子

    我正在尝试将 Twitter 使用 Twitter4j 集成到我的 Android 应用程序中 但我有一些顾虑 问题 我想检索具有特定 hashtag 的推文 例如 sxbsw2011 这是我当前正在使用的代码 Query query ne
  • 从绝对路径中提取相对路径

    这是一个看似简单的问题 但我很难以干净的方式完成它 我有一个文件路径如下 这个 是 一个 绝对 路径 到 我的 文件的 位置 我需要的是从上面给定的路径中提取 of my file 因为这是我的相对路径 我的想法如下 String abso
  • 需要解释一下保存分区表的kdb/q脚本

    我试图从以下位置理解这段代码 https code kx com q kb loading from large files 自己定制它 例如按小时 分钟 滴答数等分区 cat fs q d Q extension of Q dpft to