2015-03-02 92 views

回答

4

當然,我會給你一個簡單的例子,同時使用maplist。考慮下面的檯面設計,可以容納飛船的數據,以及船員的名單和乘客:

CREATE TABLE shipregistry (
    name text, 
    class text, 
    hullnumber text, 
    crew map<text,text>, 
    passengers list<text>, 
    PRIMARY KEY ((name)) 
); 

我將從以下文本文件(/home/aploetz/shipregistry_20150302.csv),其中有一個標題和一個單行加載此表的數據

name|class|crew|hullnumber|passengers 
Serenity|03-K64-Firefly|{'1st Officer': 'Zoey Washburne', 'captain': 'Malcolm Reynolds', 'engineer': 'Kaylee Frye', 'pilot': 'Hoban Washburne'}|G-82659|['Simon Tam', 'River Tam', 'Derial Book', 'Inara Serra'] 

我將使用cqlsh COPY命令,然後將其導入:豎線分隔的數據

[email protected]:presentation> COPY shipregistry FROM 
'/home/aploetz/shipregistry_20150302.csv' WITH HEADER=true and DELIMITER='|'; 

1 rows imported in 0.017 seconds. 

需要注意的,是,list數據爲passengers列,是逗號分隔的和括在括號中:

['Simon Tam', 'River Tam', 'Derial Book', 'Inara Serra'] 

同樣,map數據爲crew列,是逗號分隔的鍵 - 值對的列表,幷包含在括號:

{'1st Officer': 'Zoey Washburne', 'captain': 'Malcolm Reynolds', 'engineer': 'Kaylee Frye', 'pilot': 'Hoban Washburne'} 

我選擇了一個管作爲分隔符,以使這更容易對自己和避免與集合類型逗號潛在的衝突。

+0

太棒了。我會試試看。這是在文檔中搜索? – bhomass 2015-03-03 19:18:35

+0

@ user1058511不,我只知道這一點,因爲上週我必須這樣做。不幸的是,有些文檔需要更詳細的示例來刷新。 – Aaron 2015-03-03 19:22:36

+0

@Aaron - 如果映射字段缺少數據會怎麼樣? IE:出來'{'因素':'1','rep':}''''''rep'缺少值? CQL回收了一個很好的'沒有可行的替代方案...' – tymeJV 2015-11-10 16:21:15

相關問題