读取QKDB中的csv文件,超过100列

读取QKDB中的csv文件,超过100列,kdb,Kdb,在任何情况下,kdb都可以读取csv文件,这与pandas中的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可以自己理

在任何情况下,kdb都可以读取csv文件,这与pandas中的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
西蒙·加兰(Simon Garland)多年前写了一个“csv猜测”脚本:

这可能仍然是相关的。我相信一些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"
西蒙·加兰(Simon Garland)多年前写了一个“csv猜测”脚本:

这可能仍然是相关的。我相信一些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"

Windows没有head命令,因此下面是一个读取列名的纯q解决方案,可以调整为读取前n列
(登记“c”;登记1)1:r til-1+first,其中“\n”=r:read1(`:parameters.csv;0;100000000)
Windows没有head命令,因此,下面是一个读取列名的纯q解决方案,它可以调整为读取前n列
(登记“c”;登记1)1:r til-1+first,其中“\n”=r:read1(`:parameters.csv;0;100000000)