kdb可以通过任何方式读取csv文件,就像熊猫中的read_csv()函数一样简单。
我通常使用以下代码在kdb中读取csv
("I*FS";enlist ",")0:`:a.csv / where a.csv is a csv file with Integer, String, Float and Symbol columns
在实际情况中,很多时候我们要读取的csv文件有100多个列,因此很难提供可起作用的列类型。
kdb中是否有一种方法可以读取csv,从而使kdb可以自己理解列的类型?
像
("*";enlist ",")0:`:a.csv / this fails
答案 0 :(得分:3)
西蒙·加兰(Simon Garland)多年前写了一个“ csv猜测”脚本:https://github.com/simongarland/csvguess
它可能仍然有意义。我相信某些IDE(例如qStudio和Kx的分析师(?))也内置了此功能。
或者,您可以读取csv的第一行以获取列数(例如n
),然后读取n#"*"
以将整个csv读取为字符串列:
q)(count["," vs first system"head -1 a.csv"]#"*";enlist ",")0:`:a.csv
col1 col2 col3
----------------------
,"a" ,"1" "2019-01-01"
,"b" ,"2" "2019-01-01"
,"c" ,"3" "2019-01-01"