Импортировать CSV-файл с символом с конечным пробелом в таблицу KDB - PullRequest
1 голос
/ 05 августа 2020

Ниже приводится содержимое файла csv, который я экспортировал из таблицы KDB. В столбце значения 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 ]

3 голосов
/ 05 августа 2020

Загрузка как Char сохранит пространство, однако это пространство будет потеряно, если оно когда-либо понадобится в виде строки.

q)string `$"abc "
"abc"

, тогда как у нас есть

q)`char$"abc "
"abc "
2 голосов
/ 05 августа 2020

Как говорит JD, считайте его как строку, а не символ:

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

Kdb всегда будет обрезать пробелы при преобразовании в символ

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

Единственный способ избежать он предназначен для управления байт-кодом, но вы не хотите go там:

q)string -9!0x010000000c000000f55a2000
"Z "
...