将具有尾随 space 符号的 csv 文件导入 KDB table

Import csv file having symbol with trailing space to KDB table

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

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

当我尝试将此文件导入回 KDB 时,结尾的 space 被剪掉了。

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"  

如果我将 table 导出为二进制格式,当我将它导入回来时它可以保留尾随 space。无论如何导入csv文件并且没有space被修剪?

谢谢。

作为 Char 载入将保留 space,但是如果需要将其作为字符串载入,则此 space 将会丢失。

q)string `$"abc "
"abc"

而我们有

q)`char$"abc "
"abc "

正如JD所说,将其作为字符串而不是符号读入:

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

Kdb 在转换为符号时总是 trim 空白

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

避免它的唯一方法是操纵字节码,但你不想去那里:

q)string -9!0x010000000c000000f55a2000
"Z "