Cassandra CQL3 导入 CSV

6

背景:

我创建了一个名为AvailableDomains的模式(简单策略,1个节点)。

在这个键空间中,我创建了一个表/列族叫做domains,它有id、urn、timestamp和flag四个列。所有列的类型都是text,只有timestamp列的类型是时间戳。

我启动了Cassandra,

打开cqlsh -3命令行,

使用AvailableDomains键空间,

然后发出以下命令以导入CSV文件:

COPY domains (id, urn, timestamp, flag) from 'test.csv' where HEADER= TRUE;

我收到一个错误提示:不正确的COPY命令

问题: 我做错了什么?

细节:

CSV-

id,url,timestamp,flag
1,google.com,1375891081,1
2,facebook.com,1375891081,1
3,youtube.com,1375891081,1
4,yahoo.com,1375891081,1
5,baidu.com,1375891081,1
6,wikipedia.org,1375891081,1
7,amazon.com,1375891081,1
8,qq.com,1375891081,1
9,live.com,1375891081,1
10,linkedin.com,1375891081,1

csv文件的位置: 在cassandra/bin目录下(和cqlsh所在的目录相同)。

操作系统: Centos 6.4 64位。

1个回答

11

这个解决方案适用于 CQL 3:

COPY domains FROM 'test.csv' WITH HEADER = true ;

我之所以使用Header = True是因为我的CSV文件的第一行包含列名。希望这能帮助其他人。


1
在文件名周围使用双引号,例如:"test.csv",也会导致此错误。请改用单引号,例如:'test.csv'。 - user4426213
1
同时,省略“HEADER=true”之间的空格也会导致相同的错误。 - Dustin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接