以下是我从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文件并且没有修剪空间吗?
谢谢。
答案 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 "