将带有尾随符号的csv文件导入KDB表

时间:2020-08-05 14:29:14

标签: csv kdb

以下是我从KDB表导出的csv文件的内容。 Z 列的值rootTicker中有一个尾随空格。

time,rootTicker,session,yellowKey
2020-08-04D03:46:16.501844000,Z ,,Index

当我尝试将此文件导入回KDB时,尾部空间被修剪。

q)TestTable:("psss";enlist csv)0:`TestTable.csv
q)string select from TestTable
time                            rootTicker session yellowKey
------------------------------------------------------------
"2020.08.04D03:46:16.501844000" ,"Z"       ""      "Index"  

如果我将表导出为二进制格式,则当我将其导回时,它可以保留尾随空间。反正有导入csv文件并且没有修剪空间吗?

谢谢。

2 个答案:

答案 0 :(得分:3)

以Char形式加载会保留该空间,但是如果需要将其作为字符串使用,则会丢失该空间。

q)string `$"abc "
"abc"

我们有

q)`char$"abc "
"abc "

答案 1 :(得分:2)

正如JD所说,以字符串而不是符号的形式读取它:

("p*ss";enlist csv)0:

当强制转换为符号时,Kdb将始终修剪空白

q)string`$"Z "
,"Z"

避免这种情况的唯一方法是操纵字节码,但您不想去那里:

q)string -9!0x010000000c000000f55a2000
"Z "