KDB tips

  1. 将float转换成symbol: `$string <float_data>
  2. 将symbol转换成float: "F"$string <symbol data>
  3. 更新指定列,如果该列的值的第5个字符是0或者.则截取前4个字符,否则截取前5个字符: update <column name>:`${(5 4 (any "0." in a 4))#a:string x} each <column name> from `<table name>
  4. KDB可以通过update语句将指定列的类型也同时变更,但是要注意,如果包含了where子句,那么就不能变更,因为部分值仍然是原来的类型。我的做法是先用不带where子句的update语句变更类型,再使用where子句变更值,例如:
    update <column name>:`$string <column name> from `<table name>;
    update <column name>:`<symbol data> from `<table name> where <...>;
     不知道有没更好的方法
  5. 处理Symbol中的空格等特殊字符
    正确: dict:`a`b`c!(`a1`a2`a3)
    错误: dict:`a`b`c!(`a1`a2`a3 a4)
    错误: dict:`a`b`c!(`a1`a2`$"a3 a4")
    正确: dict:`a`b`c!`$("a1";"a2";"a3 a4")
    
    q) dict
    (Roundtrip: 031ms)
    (`a`b`c)!`a1`a2`a3 a4
  6. 用分隔符连接两个字段并赋值给另一个字段
    update NEW_COL:"-"sv/: flip (string COL1;string COL2) from `tbl;
  7. 日期转换时区
    d1:2013.06.05T00:00:00.000
    d2:08:00:00.000
    d3:d1+d2
    
    q) d1
    (Roundtrip: 016ms)
    2013.06.05T00:00:00.000
    
    q) d2
    (Roundtrip: 015ms)
    08:00:00.000
    
    q) d3
    (Roundtrip: 015ms)
    2013.06.05T08:00:00.000 
  8. left join (t1需要包含有key1列,1b用于区分是否在t2有对应的数据)
    t1 lj `key1 xkey select key1,1b from t2
  9. 将不补0的时间(时:分:秒)字符串(KDB不能直接将该字符串转换成时间)转换成KDB时间类型
    append0ToTime:{[timeStr]
        sections:":" vs timeStr;
        sectionCount:count sections;
        index:0;
        do [sectionCount;
            sections[index]:"" sv ("00";sections[index]);
            sections[index]:-2#sections[index];
            index:index+1];
        "V"$":" sv sections
    };
    
    result:append0ToTime["9:21:3"];
    
    q) result
    (Roundtrip: 156ms)
    09:21:03
  10. 判断文件是否存在(Key是关键字,()代表一个空的list,~是匹配)
    () ~ key `:c:/q/sp.q 
  11. 给一个字段赋值(字符)
    update col:count[i]#enlist "abc" from `table 
  12. 读取csv文件
    // load csv with header line
    data:("ISS";enlist ",") 0: `:/tmp/data.csv;
    
    // ignore the header line
    data:1_filp `ID`Name`Description!("ISS";",") 0: `:/tmp/data.csv; 
  13. 获取字符型字段、值为空的行
    select from table where 0=type each column
    
     
内容概要:本文档详细介绍了在三台CentOS 7服务器(IP地址分别为192.168.0.157、192.168.0.158和192.168.0.159)上安装和配置Hadoop、Flink及其他大数据组件(如Hive、MySQL、Sqoop、Kafka、Zookeeper、HBase、Spark、Scala)的具体步骤。首先,文档说明了环境准备,包括配置主机名映射、SSH免密登录、JDK安装等。接着,详细描述了Hadoop集群的安装配置,包括SSH免密登录、JDK配置、Hadoop环境变量设置、HDFS和YARN配置文件修改、集群启动与测试。随后,依次介绍了MySQL、Hive、Sqoop、Kafka、Zookeeper、HBase、Spark、Scala和Flink的安装配置过程,包括解压、环境变量配置、配置文件修改、服务启动等关键步骤。最后,文档提供了每个组件的基本测试方法,确保安装成功。 适合人群:具备一定Linux基础和大数据组件基础知识的运维人员、大数据开发工程师以及系统管理员。 使用场景及目标:①为大数据平台搭建提供详细的安装指南,确保各组件能够顺利安装和配置;②帮助技术人员快速掌握Hadoop、Flink等大数据组件的安装与配置,提升工作效率;③适用于企业级大数据平台的搭建与维护,确保集群稳定运行。 其他说明:本文档不仅提供了详细的安装步骤,还涵盖了常见的配置项解释和故障排查建议。建议读者在安装过程中仔细阅读每一步骤,并根据实际情况调整配置参数。此外,文档中的命令和配置文件路径均为示例,实际操作时需根据具体环境进行适当修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值