如何在kdb中加载空单元格的csv?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在kdb中加载空单元格的csv?相关的知识,希望对你有一定的参考价值。
如何在分隔符之间没有符号的情况下加载csv?请看第二行。dd
是加载在 symbolCol
,不 stringCol
$cat kdb.log
longCol"floatCol"symbolCol"stringCol
1"4"b"bb
2"5""dd
我在用
tab:("JFSS";enlist """) 0: `$"/home/..../kdb.log"
和 dd
是在 symbolCol 中加载的,而不是字符串Col。
q)tab
longCol floatCol symbolCol stringCol
------------------------------------
1 4 b bb
2 5 dd
q)tab[`symbolCol]
`b`dd
答案
这实际上看起来像是解析器的一个错误--值得向 Kx 团队提出。使用 "
作为定界符是相当罕见的,所以他们可能还没有考虑到这一点。
我唯一能找到的办法是把它替换成 "
使用更好的定界符。理想情况下,你应该在kdb之外改变定界符,但如果你必须在kdb中做,你可以这样做。
q)("JFSS";enlist",") 0: ssr[;""";","]each read0`$":/home/..../kdb.log"
longCol floatCol symbolCol stringCol
------------------------------------
1 4 b bb
2 5 dd
q)
使用一个永远不会出现在文件中的定界符。
另一答案
kdb+使用双引号来检测并忽略文件中嵌入的定界符。因此,我们可以不使用0:,而是按如下方式解析csv文件。
split:""" vs' read0 `$":/tmp/kdb.log";
headers:`$split[0];
tab:flip headers!"JFS*"$flip 1_split;
以上是关于如何在kdb中加载空单元格的csv?的主要内容,如果未能解决你的问题,请参考以下文章