我需要在cassandra中创建一个csv文件,它只会给出特定行和特定列的csv文件。
CREATE TABLE abcd (
a bigint,
b bigint,
c bigint,
d int,
e int,
PRIMARY KEY (a)
);
Select a,c,e from abcd where a in (1,4,5,6,7,8,9,.....);
如果我使用COPY命令,我可以选择列,但我不能从行中选择。如何在cassandra中获取csv文件,我可以从行和列中进行选择。是否有可能获得这样的csv文件?
答案 0 :(得分:3)
您可以使用cqlsh capture
功能将结果输出到文件中。
然后通过sed传递结果:sed -i -e 's/|/,/g' /tmp/test.csv
(或你可以提出的任何其他包装:))
答案 1 :(得分:2)
COPY
命令只会将完整的表格复制到您所需的.csv.
格式文件中。此处的文档涵盖了COPY
命令的完整概要。 (假设你使用的是Cassandra 2.0或2.1)
http://docs.datastax.com/en/cql/3.1/cql/cql_reference/copy_r.html
我会说你最好使用开源驱动程序之一,比如Datastax python驱动程序,然后你就可以更好地控制你的select语句,只抽出你需要的行。
https://datastax.github.io/python-driver/getting_started.html
这里还有一个你可能会觉得有用的工具,我见过很多人用它来满足他们的需求:
https://github.com/brianmhess/cassandra-loader
希望这有帮助。