将数据复制到Cassandra表中

时间:2016-07-28 11:39:28

标签: cassandra cassandra-2.0 spark-cassandra-connector

我们可以将多个文件导入/复制到acassandra表中,这些表在表和文件中具有相同的列名吗?

COPY table1(timestamp,temp,total_load,designl)FROM'file1','file2'WOR HEADER ='true';

我尝试使用上面的语法:但它的说法 COPY命令不正确。

我的意思是假设我们有100个具有相同列的分隔符文件,并且我想使用单个cql查询将所有文件加载到单个cassandra表中?

这是可能的:?

当我尝试使用每个文件的每个COPY命令到表时它是否覆盖数据?

请帮助我!

1 个答案:

答案 0 :(得分:3)

您可以使用以下synax指定更多表格:

COPY table1("timestamp", temp, total_load, designl) FROM 'file1, file2' WITH HEADER = 'true';

或者你也可以使用通配符:

COPY table1("timestamp", temp, total_load, designl) FROM 'folder/*.csv' WITH HEADER = 'true';

然而,有两点评论:

  • 时间戳是Cassandra中的类型名称,如果您的列具有此名称,则需要引用它,就像我在上面的示例中所做的那样。
  • 如果在执行多个复制命令时覆盖了数据,则即使执行单个复制命令也会覆盖它。如果同一个PRIMARY KEY有几行,则只有最后一行会获胜。