如何在分隔符之间没有符号的情况下加载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)
使用一个永远不会出现在文件中的定界符。