代码之家  ›  专栏  ›  技术社区  ›  Bharat Jain

如何在Cassandra中导入列值,如具有此类值“13/01/09 23:13”的列值?

  •  0
  • Bharat Jain  · 技术社区  · 8 年前

    查询:

    CREATE TABLE IF NOT EXISTS "TEMP_tmp".temp (
    "Date_Time" timestamp,
    PRIMARY KEY ("Date_Time")
    );
    

    CSV包含“13/01/09 23:13”值。

    Error : Failed to import 1 rows: ParseError - Failed to parse 13/01/09 23:13 : invalid literal for long() with base 10: '13/01/09 23:13',  given up without retries.
    

    我应该使用什么数据类型?

    2 回复  |  直到 8 年前
        1
  •  3
  •   Community CDub    7 年前

    默认Cqlsh时间戳格式为:年-月-日-小时:分钟:秒+时区
    例子:

    2017-02-01 05:28:36+0000
    

    您可以将日期格式更改为上述格式,也可以从cqlshrc文件中更改格式
    检查这个答案 custom cassandra / cqlsh time_format

        2
  •  3
  •   Community CDub    7 年前

    卡桑德拉将存储 timestamp 2017-02-01 08:28:21+0000 例如,如果我存储 时间戳 在您描述的表格中 "TEMP_tmp".temp :

    cassandra@cqlsh> INSERT INTO  TEMP_tmp.temp ("Date_Time") VALUES ( toTimestamp(now()));
    cassandra@cqlsh> SELECT * FROM TEMP_tmp.temp;
    
    Date_Time
    --------------------------
    2017-02-01 09:14:29+0000
    

    如果我们将所有数据复制到 csv :

    cassandra@cqlsh> COPY Temp_tmp.temp TO 'temp.csv';
    

    temp.csv 将包含:

    2017-02-01 09:14:29+0000
    

    如果我们 truncate 表格:

    cassandra@cqlsh> TRUNCATE TABLE TEMP_tmp.temp;
    cassandra@cqlsh> SELECT * FROM TEMP_tmp.temp;
    
    Date_Time
    --------------------------
    

    那么如果我们进口 临时csv :

    cassandra@cqlsh> COPY Temp_tmp.temp FROM 'temp.csv';
    Using 1 child processes
    
    Starting copy of Temp_tmp.temp with columns [Date_Time].
    Processed: 1 rows; Rate:       1 rows/s; Avg. rate:       1 rows/s
    1 rows imported from 1 files in 0.746 seconds (0 skipped).
    

    如果您想要自定义日期/时间格式,请遵循 Ashraful Islam's answer 从你的问题。