2017-05-09 27 views
0

我需要在cassandra中創建一個csv文件,它只會提供特定行的csv文件和特定列。特定行上的Cassandra 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

拷貝命令將導出所有的數據,你不能用where子句 –

+0

您只能濾網過濾: 然後就通過sed的結果傳遞只有BEGINTOKEN和ENDTOKEN –

+0

http://stackoverflow.com/questions/26909408/export-cassandra-query-result-to-a-csv-file/26911405#26911405 – Aaron

回答

3

您可以使用cqlsh capture功能將結果輸出到文件中。 sed -i -e 's/|/,/g' /tmp/test.csv (或任何其他的包裝,你可以拿出:))

2

COPY命令只是將完整的表格複製到您所需的.csv.格式文件中。這裏的文檔涵蓋了COPY命令的完整摘要。 (假設你正在使用Cassandra的2.0或2.1)

http://docs.datastax.com/en/cql/3.1/cql/cql_reference/copy_r.html

我會說你會更好,這裏使用開源驅動器,如Datastax蟒蛇驅動程序之一,那麼你可以有更好地控制您的選擇語句並只抽出你需要的行。

https://datastax.github.io/python-driver/getting_started.html

這裏也一個工具,你可能會發現有用的,我見過不少人用此來滿足他們的需求:

https://github.com/brianmhess/cassandra-loader

希望這有助於。