热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

kdb/q问题:我如何在功能选择中解释这个组?

如何解决《kdb/q问题:我如何在功能选择中解释这个组?》经验,为你挑选了1个好方法。

我是kdb/q的新手,我正在试图找出这个特定查询的含义.代码使用功能选择,我不太满意.

?[output;();b;a];

其中output是一些包含列的表 size time symbol

groupby过滤字典b定义如下

key | value
---------------
ts  | ("+";00:05:00v;("k){x*y div x:$[16h=abs[@x];"j"$x;x]}";00:05:00v;("%:";`time)))
sym | ("k){x'y}";"{`$(,/)("/" vs string x)}";`symbol)

为了完整起见,字典a被定义为

volume  ("sum";`size)  

实际上,功能选择似乎将数据分成5分钟的桶并进行一些解析symbol.令我困惑的是如何阅读groupby字典.特别是k)"部分和整个事物都在引号中.有人可以帮助我解决这个问题,还是指出可以帮助我理解的资源?任何输入将不胜感激.



1> Mark Kelly..:

函数形式的聚合部分采用字典,键是输出键列名,值是解析树函数.

解析树是不立即求值的表达式.作为函数的第一个参数和后续元素是它的参数.首先评估最内部的括号,然后沿着层次向上移动,依次评估每个括号.可以在此处以及该页面上链接的白皮书中找到更详细的信息

您可以使用parse带有字符串参数的函数来获取函数的解析树.例如,解析树1+2+3(+;1;(+;2;3)):

q)parse "1+2+3"
+
1
(+;2;3)

在结果被传播到最外部的解析树函数给出之前,(+;2;3)首先评估最内部括号5(+;1;5)6

该子句的groupby部分将评估一个或多个解析树函数,然后将收集来自分组函数的相同输出的记录.

使函数更清晰易读:

(+;00:05:00v;({x*y div x:$[16h=abs[@x];"j"$x;x]}";00:05:00v;(%:;`time)))

查看最内部括号(%:;`time),它返回%:时间列上应用的结果.我们可以看到这%:是函数的kltime

q)ltime
%:

向上移动一个级别,下一个评估的函数是{x*y div x:$[16h=abs[@x];"j"$x;x]}带有参数的lambda函数00:05:00v和我们之前评估函数的结果.lambda将它向下舍入最近的5分钟间隔

({x*y div x:$[16h=abs[@x];"j"$x;x]};00:05:00v;(%:;`time))

向上移动到整个表达式相当于00:05:00v + {x*y div x:$[16h=abs[@x];"j"$x;x]};00:05:00v;(%:;`time)),将00:05:00添加到先前评估的每个结果上.

所以基本上它首先返回时间戳的本地时间,然后

用于symbol聚合

("k""{x'y}";{`$(,/)("/" vs string x)};`symbol)

内部函数{`$(,/)("/" vs string x)}将符号串起来,将其拆分为"/"字符,然后将其重新连接在一起,从而有效地删除斜杠

"k"是一个使用k解释器计算字符串的函数.

"k""{x'y}""返回一个函数,它本身接受一个函数x和一个参数,y并修改函数以使用每个副本'.这使得该功能x单独应用于每个符号而不是作为整体的列.

这可以q代替k 来实现,如下所示:

({x@'y};{`$(,/)("/" vs string x)};`symbol)

该函数{x@'y}接受函数参数{`$(,/)("/" vs string x)}symbol 列,如前所述,但是我们必须使用@q中的每个副词来对参数应用函数.

然后,聚合函数将应用于每个组.在您的情况下,该函数是一个简单的解析树,它将返回sum每个组中的大小列,并调用输出列volume

a:enlist[`volume]!enlist (sum;`size)


很好的解释!两个注释:`k){x*y div x:$ [16h = abs [@x];"j"$ x; x]}`是`xbar`和`k){x'y}`是`每个`所以对q最简单的翻译是`(xbar; 00:05:00v;(ltime; \`time))`和`(每个; {\`$(,/)("/"vs string x)}; \`符号)`
推荐阅读
  • SpringBoot uri统一权限管理的实现方法及步骤详解
    本文详细介绍了SpringBoot中实现uri统一权限管理的方法,包括表结构定义、自动统计URI并自动删除脏数据、程序启动加载等步骤。通过该方法可以提高系统的安全性,实现对系统任意接口的权限拦截验证。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文详细介绍了PHP中与URL处理相关的三个函数:http_build_query、parse_str和查询字符串的解析。通过示例和语法说明,讲解了这些函数的使用方法和作用,帮助读者更好地理解和应用。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
author-avatar
张晓和46872
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有