Kdb 运行从qpython读取csv并分配给表
我想在python中运行以下q代码:Kdb 运行从qpython读取csv并分配给表,kdb,Kdb,我想在python中运行以下q代码: table: ("ISI"; enlist ",") 0:`data.csv 我从探索qpython开始,因为它现在更容易在Windows中使用(与pyq相比),我想做以下工作: q = qconnection.QConnection(host = 'localhost', port = 5000) q.sync('table: ("ISI"; enlist ",") 0:`data.csv') 如果pyq在Windows上稳定运行,我将来是否需要使用它
table: ("ISI"; enlist ",") 0:`data.csv
我从探索qpython开始,因为它现在更容易在Windows中使用(与pyq相比),我想做以下工作:
q = qconnection.QConnection(host = 'localhost', port = 5000)
q.sync('table: ("ISI"; enlist ",") 0:`data.csv')
如果pyq在Windows上稳定运行,我将来是否需要使用它?我所看到的q.sync示例是接受参数列表的查询和函数,而不是在q环境中直接运行代码。我想确保我没有丢失一些可用于当前任务的其他功能。当尝试访问文件时,您必须使用其文件句柄,其格式为
`:data.csv
(请注意开头的冒号),而不是您正在使用的符号。您可以使用hsym
将符号转换为文件句柄
您还应该在Windows上的q进程中使用\dir
检查文件是否与q进程位于同一工作目录中,否则您需要调整文件句柄以指向正确的位置
q)hsym `data.csv
`:data.csv
文件data.csv包含以下内容:
id,sym,val
1,APPL,50
2,GOOG,100
运行与您相同的命令,但使用文件句柄:
In: q.sync('table: ("ISI"; enlist ",") 0: `:data.csv')
或
使用qpython检查结果变量:
In: q.sync('table')
Out: rec.array([(1, b'APPL', 50), (2, b'GOOG', 100)],
dtype=[('id', '<i4'), ('sym', 'S4'), ('val', '<i4')])
In: q.sync('table')
Out: rec.array([(1, b'APPL', 50), (2, b'GOOG', 100)],
dtype=[('id', '<i4'), ('sym', 'S4'), ('val', '<i4')])
q)table
id sym val
-----------
1 APPL 50
2 GOOG 100